leetcode 设计Goal解析器
解析字符串,将 G 转化为 G ,() 转化为 o ,(al) 转化为 al 。
代码:
char * interpret(char * command){
int len = strlen(command);
int cur = 0;
char *result = malloc(sizeof(char) * (len + 1));
memset(result, 0, len + 1);
for (int i = 0; i < len; i++) {
if (command[i] == 'G') result[cur++] = 'G';
else if (command[i] == '(' && command[i + 1] == ')') {
result[cur++] = 'o';
i = i + 1;
} else {
result[cur++] = 'a';
result[cur++] = 'l';
i = i + 3;
}
}
return result;
}
创建一个字符数组,其长度为 原始字符串长度 + 1 (与原始字符串长度,可能原始字符串都是 G ,加一是为了最后一位的 0 ),当遇到 G 直接转化为 G ;当遇到 ( 时,判断其下一位,如果为 ) ,则转化为 o ,否则转化为 al (前一种情况,当前位置要加一,后一种情况要加三。
结果
|