首页 > 试题广场 >

检查重复字符串

[编程题]检查重复字符串
  • 热度指数:55066 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定字符串 str,检查其是否包含连续重复的字母(a-zA-Z),包含返回 true,否则返回 false
示例1

输入

'rattler'

输出

true
function containsRepeatingLetter(str) {
    return /([a-zA-Z])\1/.test(str);
}

发表于 2015-07-14 10:53:39 回复(0)
更多回答
function containsRepeatingLetter(str) { 
    for(let i =1;i<str.length;i++){
        if(str[i-1] === str[i] && str.charCodeAt(i) <123 && str.charCodeAt(i) > 64){
            return true;
        }
    }
    return false;
}
抖机灵
发表于 2019-10-09 18:03:38 回复(1)
function containsRepeatingLetter(str) {
    for (let i = 0; i < str.length; i++) {
        if(Math.abs(str.indexOf(str[i]) - str.lastIndexOf(str[i])) === 1 && /[a-zA-Z]/.test(str[i])) return true
    }
    return false
}


发表于 2021-09-13 23:28:50 回复(0)
有没有跟我一样 不喜欢用正则(不是不喜欢东西太多了懒得去学)
        function containsRepeatingLetter(str) {
            let arr = str.split('');
            let flag = false;
            for (let i = 0; i < arr.length - 1; i++) {
                if (isNaN(arr[i]) && isNaN(arr[i + 1]) && arr[i] === arr[i + 1]) {
                    flag = true;
                    break;
                }
            }
            return flag
        }

发表于 2022-04-21 13:18:12 回复(0)
function containsRepeatingLetter(str) {
    return /([a-zA-Z])\1/.test(str);   //\1表示重复正则第一个圆括号内匹配到的内容; \2表示重复正则第二个圆括号内匹配到的内容
}

发表于 2022-01-07 14:27:13 回复(2)
遍历字符串,判断是否为字符且与相邻字符是否相等
function containsRepeatingLetter(str) {
    for(let i=0; i<str.length-1; i++) {
        if(Object.is(parseInt(str[i]), NaN) && (str[i] === str[i+1])) {
            return true;
            break;
        }
    }
    return false;
}
发表于 2021-09-10 17:20:56 回复(0)
1. 方法一: 利用isNaN判断是否为数字,和split()把字符串转为数组
function containsRepeatingLetter(str) {
 
    let arr = str.split('')
    return arr.some( (item, index) => {
        if(isNaN(item) && item === arr[index+1]) return true
    })
    
}
2. 方法二: 利用正则表达式, /([a-zA-Z])\1/ 这里的\1就是匹配第一个括号的规则是否有连续重复的字母
function containsRepeatingLetter(str) {
 
    let pattern = /([a-zA-Z])\1/
    return pattern.test(str)    
}



发表于 2021-07-17 16:04:30 回复(0)
function containsRepeatingLetter(str) {
    var arr = str.toLowerCase().split("");
    for(var i = 0; i<arr.length-1; i++){
        if(arr[i] === arr[i+1] && isNaN(arr[i]) === true){//题目要求字母重复而非数字
            return true;
        }
    }
    return false;
}

发表于 2018-10-11 16:26:43 回复(0)
在正则表达式中,利用()进行分组,使用斜杠加数字表示引用,\1就是引用第一个分组,\2就是引用第二个分组。将[a-zA-Z]做为一个分组,然后引用,就可以判断是否有连续重复的字母。
function containsRepeatingLetter(str) {
     return /([a-zA-Z])\1/.test(str);
 }

编辑于 2015-08-19 10:43:11 回复(27)
function containsRepeatingLetter(str) {
    var regLetter=/([a-zA-Z])\1+/;
    var bool=false;
    if (regLetter.test(str)) {
        bool=true;
    }
    return bool;
}
\1 引用前面的分组
发表于 2016-07-20 22:53:35 回复(0)
var reg=/[a-zA-Z]{2,}/;
    return reg.test(str);
为什么这个通过率只有60%
发表于 2016-05-14 11:41:11 回复(5)
function containsRepeatingLetter(str) {
	var reg = /([a-z])\1/ig;
    return reg.test(str);
}

发表于 2015-10-19 20:02:18 回复(0)
function containsRepeatingLetter(str) {
      var reg=/[a-zA-Z]/;
      for(var i=0,len=str.length;i<len;i++){
          if(str.charAt(i)==str.charAt(i+1) && reg.test(str.charAt(i))){
              return true;
          }
      }
     return false;
}
比较笨的方法,呵呵
发表于 2016-03-30 23:40:23 回复(1)
  对正则表达式中前一个子表达式的引用,并不是指对子表达式模式的引用,而指的是与那个模式相匹配的文本的引用。这样,引用可以用于实施一条约束,即一个字符串各个单独部分包含的是完全相同的字符。
function containsRepeatingLetter(str) {
    return /([a-zA-Z])\1/.test(str);
}
发表于 2016-04-08 14:10:11 回复(0)
function containsRepeatingLetter(str) {
    var pattern = /[a-zA-Z]/g;
	for(var i=0;i<str.length;i++){
        if(str[i]==str[i+1] && pattern.test(str[i])){
            return true;
        }
    }
    return false;
}

测试通过!

发表于 2017-04-10 18:10:48 回复(0)
function containsRepeatingLetter(str) {
    return /([a-zA-Z])\1/.test(str);   //\1表示重复正则第一个圆括号内匹配到的内容;  \2表示重复正则第二个圆括号内匹配到的内容
}
发表于 2017-01-04 14:39:31 回复(0)
在不用正则表达式的情况下
function containsRepeatingLetter(str) {
    for(var x=0 ;x<str.length-1;x++){
        if((str[x]>='a'&&str[x]<='z')||(str[x]>='A'&&str[x]<='Z')){
            if(str[x]==str[x+1]){
            return true;
            }
        }
    }
    return false;
}

发表于 2018-06-13 19:42:45 回复(1)
function containsRepeatingLetter(str) {
     return /([a-zA-Z])\1/.test(str);
}

使用正则表达式
发表于 2017-03-14 10:37:48 回复(0)
function containsRepeatingLetter(str) {
    var reg = /([a-zA-Z])\1/;
    return reg.test(str);
}
发表于 2020-03-26 14:58:38 回复(0)

问题信息

难度:
134条回答 23895浏览

热门推荐

通过挑战的用户

查看代码