← 返回 google 的题目列表Split a Log Line by Spaces Outside Quoted Fields
类型:online_judge
Given a very large log string s, split it into fields using spaces outside quoted regions as delimiters.
A space is a delimiter only when it is outside double quotes (").
Spaces inside double quotes must remain part of the same field.
Preserve the original double quotes in the returned fields.
You may assume quotes are balanced and that there are no escaped quotes (such as \") or nested quotes.
Consecutive spaces must not create empty fields.
Write a program that reads one log line from standard input and prints one resulting field per line.
Example 1
Input:
level=INFO message="request completed successfully" latency=12ms
Output:
level=INFO
message="request completed successfully"
latency=12ms
Constraints
In the standard version, 1 <= len(s) <= 10^7.
Follow-up: the log can be too large to fit in one machine's memory. Explain how to perform the same tokenization in a streaming or distributed manner while correctly handling quote state across chunk boundaries.
Example
Input
level=INFO message="request completed successfully" latency=12ms
Output
level=INFO
message="request completed successfully"
latency=12ms