由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 一道题
相关主题
面试的时候用到Trie,要求实现吗?HackerRank find string..
一个老算法题【update】今天G家电面的一道题
一个答案看不明白谁解释一下判断两个Strings是否相差一个Edit distance
LC的题确实变难了。。。MS面试题
How to find the kth biggest number in a BST请教一个BST找Median的题目
L家这题咋搞,巨变态讨论一道两个linked list的题目
GOOG intern interview 题目请问一个简单的面试题
【一个BB公司问的字母排序的问题】How to turn a binary search tree into a sorted array?
相关话题的讨论汇总
话题: node话题: expression话题: string话题: breakindex
进入JobHunting版参与讨论
1 (共1页)
J**9
发帖数: 835
1
condition ? value_if_true : value_if_false
a?b:c
a
|
b c
class Node {
String variableName;
Node left, right;
}
class Expression {
Node root;
}
a?b?c:d:e
a
|
b e
|
c d


Expression *expressionParser(char *expression);
z***e
发帖数: 58
2

从左开始往右遍历 试图找到冒号使得分割?后面的字符串,如a?[...]:[...] 就是找到
: , 找法就是如果碰到一个 ? 就加一碰到: 就减一,这样第一个抵消?和:的也就是0
的:就是要找的冒号。然后对两个[...] 分别递归即可。随便敲了下,将就看吧。
Node createExpression(int start, int end, String str ){
if(right== left) return new Node(str[start]);
int count = 0;
Node node =new Node(str.charAt(start));
int breakIndex = 0;
for(int i = start; i <= end; ++i){
if(str.charAt(i) == '?') count++;
else if(str.charAt(i) == ':')count--;
if(count == 0) { breakIndex= i; break;}
}
node.left = createExpression(start+2,breakIndex-1);
node.right = createExpression(breakIndex + 1, end);
return node;
}
createExpression(0,str.length()-1,str);

【在 J**9 的大作中提到】
: condition ? value_if_true : value_if_false
: a?b:c
: a
: |
: b c
: class Node {
: String variableName;
: Node left, right;
: }
: class Expression {

J**9
发帖数: 835
3
good. thanks
1 (共1页)
进入JobHunting版参与讨论
相关主题
How to turn a binary search tree into a sorted array?How to find the kth biggest number in a BST
谁有较好的iterative后序遍历binary tree的代码?L家这题咋搞,巨变态
一道二叉树的老题GOOG intern interview 题目
问一个链表的问题【一个BB公司问的字母排序的问题】
面试的时候用到Trie,要求实现吗?HackerRank find string..
一个老算法题【update】今天G家电面的一道题
一个答案看不明白谁解释一下判断两个Strings是否相差一个Edit distance
LC的题确实变难了。。。MS面试题
相关话题的讨论汇总
话题: node话题: expression话题: string话题: breakindex