JavaScript|寻找最长连续重复字母(含测试源码)

题目重现

编写函数maxr(char)返回字符串char中最长的连续重复字母,例如maxr(“aabbbccccd”)将返回“c”,因为字母c连续重复出现了4次,超过了所有其他字母

算法思路

解法----双指针法

这个题目需要使用“双指针法”,这是处理字符串同类问题的常用方法。“双指针法”的具体思路是:准备两个变量i=0和j=1,它们分别指向字符串的第0位和第1位,即变量i,j的值表示的是它们“指向”字符串的第几位,称这样的变量为“指针”,然后让指针进行遍历,规则如下

  • 如果i指向的字母和j指向的字母相同,则i指针不动,j后移
  • 否则,i指针追上j指针,j后移

测试效果

在这里插入图片描述

附上源码

<script>
	function maxr(charstr) {
		var i = 0;
		var j = 1;
		var maxlength = 0;
		var maxchar = "";
		while(i<charstr.length) {
			if(charstr.charAt(i) == charstr.charAt(j)) {
				j++;
			}else {
				if(j-i > maxlength) {
					maxlength = j-i;
					maxchar  = charstr.charAt(i);
				}
				i = j;
				j++;
			}
		}
		return maxchar;
	}
</script>
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 像素格子 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读