JavaScript|2种方法搞定字符串循环右移(含测试源码)

本博文源于js基础,旨在探讨如何实现字符串循环右移的方法,下面给出两种做题方法!

题目再现

题目:编写函数rightchange(char ,n),实现将字符串char循环右移n位,如rightchange(“东西南北中”,2)将返回“北中东西南”。这是因为字符串“东西南北中”循环右移一位变为“中东西南中”,再次循环右移一位就变为“北中东西南”

算法思路

思路1—pop法

可以将字符串转换为数组,将数组的末项删除后在队首插入,如此执行n次,最后将数组转回字符串即可。数组的pop()方法会删除并返回数组的最后一项,可以将这项作为unshift()方法的参数,插入到数组的队首

arr.unshift(arr.pop());

测试效果

在这里插入图片描述

附上源码

<script>
	function rightchange(charstr,n) {
		n = n % charstr.length;
		var arr = charstr.split("");
		var count = n;
		while(count--) {
			arr.unshift(arr.pop());
		}
		return arr.join("");
	}
</script>

思路2—分割法

将字符串“abcd”循环右移2位,等价于将字符串的倒数2个字符转移到字符串的起始,因此采用分割将其取出来,然后进行字符串拼接

测试效果

在这里插入图片描述

附上源码

<script>
	function rightchange_2(str,n) {
		n = n% str.length;
		var str1 = str.slice(0,-n);
		var str2 = str.slice(-n);
		return str2+str1;
	}
</script>

猜你喜欢

转载自blog.csdn.net/m0_37149062/article/details/106241351