京东-测试开发笔试

转自:http://blog.csdn.net/hqsary/article/details/77914649
自己做个记录。

给定一个字符串s,请计算输出含有连续两个s作为子串的最短字符串。注意两个s可能有重叠部分。例如,"ababa"含有两个“aba".
输入描述:
输入包括一个字符串s,字符串长度length(1<=length<=50),s中每个字符都是小写字符。
输出描述:
输出一个字符串,即含有连续两个s作为子串的最短字符串。
示例1
输入   abracadabra
输出   abracadabracadabra

采用js实现。思路:看了好久,发现本题的意思其实就是判断从最后一位开始算,存在多少位和头开始的相应位数相当。然后拼接就可以了。
比如
abracadabra就有后四位abra和前面四位abra相等,只需要寻找出相等的位数,连接就ok了。
代码实现:
          var str = "字符串";  
var arr = [];  
arr = str;  
var temp;  
var conunt=0;  
for (var i = arr.length - 1; i >0; i--) {  
    var arr1=arr.slice(i,arr.length);  
    var arr2=arr.slice(0,arr.length-i);  
    if(arr1==arr2){  
        temp=arr1;  
                                     conunt++;  
    }  
}  
if(conunt==0){//采用count计数,如果为0.则该字符串没有相等的。则返回str+str  
    var temp2=str.concat(str);  
}else {  
    var temp1=arr.slice(temp.length,arr.length);  
var temp2=str.concat(temp1);  
}  
console.log(temp2);  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值