方法一 splice
将字符串转为数组,对数组进行遍历,碰到'G'保持不变,继续循环,碰到 '(' 看他后一位,是 ')' 则删除两个元素,添加一个 'o' ,不是则删除四个元素,添加元素 'al' ,最后将数组转回字符串。
var interpret = function(command) {
command=command.split('')
for(let i=0 ;i<command.length;i++){
if(command[i]==='G') continue
if(command[i]==='('){
if(command[i+1]==')'){
command.splice(i,2,'o')
}else{
command.splice(i,4,'al')
}
}
}
return command.join('')
};
消耗时间和内存情况:
方法二
不需要原地修改command,也可以维护一个新字符串
var interpret = function(command) {
let res = '';
for (let i = 0; i < command.length; i++) {
if (command[i] === 'G') {
res += 'G';
} else if (command[i] === '(') {
if (command[i + 1] === ')') {
res += 'o';
} else {
res += 'al';
}
}
}
return res;
};
消耗时间和内存情况: