第一题反转字符串啊,还是非常简单的
常规思路
var reverseString = function(s) {
var temp
for(var i=0;i<s.length/2;i++){
temp = s[s.length-1-i]
s[s.length-1-i] = s[i]
s[i] = temp
}
return s
};
另外还有更简单解法,三行代码实现
极致压缩,利用for循环,添加两个循环条件,两个指针分别向内移动
var reverseString = function(s) {
const n = s.length;
for (let left = 0, right = n - 1; left < right; ++left, --right) {
[s[left], s[right]] = [s[right], s[left]];
}
};
第二题将字符串内部单词反转,反转之后空格依旧在原来的位置
var reverseWords = function(s) {
var newStr = []
var len =s.length
var i=0
while(i<len){
var start = i;
while(i<len&&s[i]!=' '){
i++
}
for(var j=start;j<i;j++){
newStr.push(s[start+i-1-j])
}
while(i<len&&s[i]==' '){
i++
newStr.push(' ')
}
}
return newStr.join('')
};
思路循环遍历,将空格之前的字符反转之后保存在新的数组之中,然后再将新的数组join