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

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)

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容