z***e 发帖数: 58 | 1
从左开始往右遍历 试图找到冒号使得分割?后面的字符串,如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) { brea... 阅读全帖 |
|