由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教个面试题
相关主题
G电面一题请教一道面试题
airbnb电面这道Amazon面试题怎么做
一道面试题(integer to binary string)内推Amazon Economist
请教一道面试题刚看到个帖子很搞笑
一道很简单的面试题,但是不知道哪个算法好Snapchat @SEA
一道面试题求解Fresh CS PhD, MS 面经
请教一个面试题问个java hashcode的题
FB面试题一道的follow up问个amazon面试题。
相关话题的讨论汇总
话题: san话题: ca话题: los话题: francisco
进入JobHunting版参与讨论
1 (共1页)
l**h
发帖数: 893
1
CSV Parser, 比如:
输入:
[['John', 'Smith', '[email protected]
/* */', 'Los Angeles', '1'],
['Jane', 'Roberts', '[email protected]
/* */', 'San Francisco, CA', '0'],
['Alexandra "Alex"', 'Menendez', '[email protected]
/* */', 'Miami', '1']]
输出:
John|Smith|[email protected]
/* */|Los Angeles|1
Jane|Roberts|[email protected]
/* */|San Francisco, CA|0
Alexandra "Alex"|Menendez|[email protected]
/* */|Miami|1.
怎么写比较好?
l**h
发帖数: 893
2
A家的题,只能用string replacement裸写?

/* */', 'Los Angeles', '1'],
/* */', 'San Francisco, CA', '0'],
/* */', 'Miami', '1']]
/* */|Los Angeles|1
/* */|San Francisco, CA|0
/* */|Miami|1.

【在 l**h 的大作中提到】
: CSV Parser, 比如:
: 输入:
: [['John', 'Smith', '[email protected]
: /* */', 'Los Angeles', '1'],
: ['Jane', 'Roberts', '[email protected]
: /* */', 'San Francisco, CA', '0'],
: ['Alexandra "Alex"', 'Menendez', '[email protected]
: /* */', 'Miami', '1']]
: 输出:
: John|Smith|[email protected]

w****a
发帖数: 710
3
a的高频题,最近面它们家正好准备过。发个我的答案供参考吧,感觉应该可以写得更
简单一些。
vector parse_csv(string csv) {
vector ret;
string buffer;
bool in_quote = false;
for (int i = 0; i < csv.size(); ++i) {
string append(1, csv[i]);
if (csv[i] == '"') {
if (i + 1 < csv.size() && csv[i + 1] == '"') ++i;
else append = "";
in_quote = !in_quote;
}
if (csv[i] == ',' && !in_quote) {
ret.push_back(buffer);
buffer = append = "";
}
buffer += append;
}
if (!buffer.empty()) ret.push_back(buffer);
return ret;
}
e***i
发帖数: 231
4
用python。
a=[['John', 'Smith', '[email protected]
/* */', 'Los Angeles', '1'], ['Jane', '
Roberts', '[email protected]
/* */', 'San Francisco, CA', '0'], ['Alexandra "Alex"', '
Menendez', '[email protected]
/* */', 'Miami', '1']]
for x in a:
print '|'.join(x)

/* */', 'Los Angeles', '1'],
/* */', 'San Francisco, CA', '0'],
/* */', 'Miami', '1']]
/* */|Los Angeles|1
/* */|San Francisco, CA|0
/* */|Miami|1.

【在 l**h 的大作中提到】
: CSV Parser, 比如:
: 输入:
: [['John', 'Smith', '[email protected]
: /* */', 'Los Angeles', '1'],
: ['Jane', 'Roberts', '[email protected]
: /* */', 'San Francisco, CA', '0'],
: ['Alexandra "Alex"', 'Menendez', '[email protected]
: /* */', 'Miami', '1']]
: 输出:
: John|Smith|[email protected]

l**h
发帖数: 893
5
写了个java的:
String toCsv(String str) throws Exception {
boolean insideQuote = false;
Stack stack = new Stack();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c == '[') {
stack.push(c);
} else if (c == ']') {
if (stack.isEmpty() || stack.peek() != '[') {
throw new Exception("Found unmatched ]");
}
stack.pop();
sb.append("n");
} else if (c == ''') {
insideQuote = !insideQuote;
} else if (c == ',') {
// only append '|' if comma is in the most inner element
if (!insideQuote && stack.size() > 1) {
sb.append("|");
}
} else if (c == ' ') {
if (insideQuote) {
sb.append(c);
}
} else {
sb.append(c);
}
}
return sb.toString();
}

【在 w****a 的大作中提到】
: a的高频题,最近面它们家正好准备过。发个我的答案供参考吧,感觉应该可以写得更
: 简单一些。
: vector parse_csv(string csv) {
: vector ret;
: string buffer;
: bool in_quote = false;
: for (int i = 0; i < csv.size(); ++i) {
: string append(1, csv[i]);
: if (csv[i] == '"') {
: if (i + 1 < csv.size() && csv[i + 1] == '"') ++i;

1 (共1页)
进入JobHunting版参与讨论
相关主题
问个amazon面试题。一道很简单的面试题,但是不知道哪个算法好
用C面试真是吃亏一道面试题求解
a2z(amazon 子公司)电面题目请教一个面试题
贡献今天facebook电面 一道题FB面试题一道的follow up
G电面一题请教一道面试题
airbnb电面这道Amazon面试题怎么做
一道面试题(integer to binary string)内推Amazon Economist
请教一道面试题刚看到个帖子很搞笑
相关话题的讨论汇总
话题: san话题: ca话题: los话题: francisco