更多算法实现见:https://github.com/Erindcl/Daily-algorithm
657. 判断路线成圈
- 初始位置 (0, 0) 处有一个机器人。给出它的一系列动作,判断这个机器人的移动路线是否形成一个圆圈,换言之就是判断它是否会移回到原来的位置。
- 移动顺序由一个字符串表示。每一个动作都是由一个字符来表示的。机器人有效的动作有 R(右),L(左),U(上)和 D(下)。输出应为 true 或 false,表示机器人移动路线是否成圈。
代码如下:
var judgeCircle = function(moves) {
let v = 0, h = 0;
for (let move of moves) {
switch (move) {
case 'U': v += 1; break;
case 'D': v -= 1; break;
case 'L': h += 1; break;
case 'R': h -= 1; break;
}
}
return v === 0 && h === 0
};
557. 反转字符串中的单词 III
- 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
代码如下:
var reverseWords = function(s) {
let index = 0, newS = "";
for (let i = 0; i < s.length; i++) {
if (s[i] == " ") {
newS += s.slice(index,i).split("").reverse("").join("");
newS += " ";
index = i + 1;
}
}
newS += s.slice(index,s.length).split("").reverse("").join("");
return newS;
};
其他实现:
var reverseWords = function(s) {
var str = ''
var ch = ''
for(var i = 0 ; i < s.length ; i++){
if(s[i] != ' '){
ch = s[i] + ch
}
if(s[i] == ' ' || i == s.length-1){
str = str + ' ' + ch
ch = ''
}
}
return str.slice(1)
};