碰到這個題第一反應,來個去重吧,明顯的去重意思呀 ~ 結果越寫以爲越不對勁,啥東西 ~好像跟去重沒多大關係, 數組
好吧,開始本身想思路吧 ~spa
比對是否有重複的元素,第一個放到一個字符串裏,第二個與第一個比較,第三個與前兩個比較.... 遇到重複值即中止 ,啊 哈哈哈哈~想到了 ,我真是把本身蠢死了,當我看到第三個示例的時候,好像個人思路不太對啊,萬一重複以後,後面的字符串又有更長的怎麼辦 ???code
那就要判斷兩種了,一旦碰到重複的值,就要清空從新計算了,接下來思路大概有了,開始動手啦 ~首先科普兩個知識(大佬就略過就能夠)
數組的length是屬性,如cdn
char c[]=new char[5];
int a=c.length
複製代碼
字符串的length是方法:blog
String s="abcd";
int a=s.lenth();
複製代碼
來嘍,來嘍,它真的來嘍 ~字符串
function lengthOfLongestSubstring(str) {
var newStr = ''; //存放字符串
var len = 0; //放最大長度
for( var i=0; i<str.length; i++){
// 'abc'.indexOf('a');
let index = newStr.indexOf(str[i]);
if(index === -1) {
newStr += str[i];
//比對長度
len = len < newStr.length? newStr.length:len;
}else {
// 從新拼接字符串
newStr = str[i];
}
}
return len;
};
console.log(lengthOfLongestSubstring('abcabcbb'));
console.log(lengthOfLongestSubstring('bbbbb'));
console.log(lengthOfLongestSubstring('pwwkew'));
複製代碼
惋惜本仙女沒有答上,難過,本仙女繼續努力啦 ,下期見!string