证明一个字符串是由多个子字符串重复而组成的

2019-05-16  本文已影响0人  infi_
20171003223346_2BnNe.jpeg

例如 ""aabaaabaaaba" 这个是由aaba重复组成的 所以这个字符串是符合要求的 是true
例如"aabaabaab"这个字符串是由aab重复组成的 所以这个字符串也是符合要求的 是true

例如"aabpaab"这个就是不符合要求的 没办法由重复字符串组合 多了个p所以为false

这个问题 题意很简单 但是难点在于 你不知道这个重复字符串的位数 是aaba 还是aab 没有什么规律
如果用逆向思维 就是如果字符串里只有一个字母并且只出现一次就是不符合要求的 那么"aababa"里面没有与众不同的字符串
但是明显不符合要求,所以这个逆向思维也不能用

结果就是只能用正则的模式匹配法

var test11="aabaaabaaaba"
function makeone(str){                           
   var reg=new RegExp('^(\\w+)\\1+$','g')        
   var result= str.match(reg)    //
   if(result){
     return true
   }else{
     return false
   }
   }
console.log(makeone(test11))

核心就是 RegExp('^(\w+)\1+','g') (\\w+)匹配多个字符串 \\1+作用于(\\w)表示至少重复了2次表示并且以重复字符串结尾 也作用于(\w)

这个问题就是一个题意很简单 但是不用技巧难度很大的题 知道了之后就是一行代码解决

上一篇下一篇

猜你喜欢

热点阅读