字符串处理类
1.旋转字符串
<script>
var arr = [1,2,3,4,5,6,7];
// 1.把第一位字符串移动到第n的位置,也就是 arr[n-1]的坐标
function removeToN(arr,n) {
var t = arr[0];
for(var i=1;i<n;i++)
{
arr[i-1] = arr[i];
}
arr[n-1] = t;
return arr;
}
// console.log(removeToN(arr,3)); // [2, 3, 1, 4, 5, 6, 7]
</script>
2.字符串旋转,从第from位开始,到to位置的字符串倒转
<script>
// 思路:把from的第一个值取出来,然后 from++的坐标值是to to-- 此时原本的from已经变成from++,to变成to--,再次循环
var arr =[1,2,3,4,5,6,7];
function removeStr(arr,from,to) {
while (from < to){
var t = arr[from];
arr[from++] = arr[to];
arr[to--] = t;
}
return arr;
}
console.log(removeStr(arr,2,5)); // [7, 6, 5, 4, 3, 2, 1]
</script>
个人总结:其实这类算法也很简单,思路就是
1.要移动谁(from),先把它取出来作为临时变量。因为这个位置要放入其他值
2.把这个位置(from)放入应该放的值。然后把位置网上加
3.对于第二个位置(to)的变化,也是放入相应的值,一般来说大的键都是改变值后,做减法,小的位置,改变值后做加法。
4.如果多个值要改变,则将临时变量(t)放入循环内部,
5.否则,放在循环外部,循环结束后,放入该放入的位置。(例如1.旋转字符串).但是循环结束后,要记得处理刚才的变量