【发布时间】:2021-01-17 18:04:44
【问题描述】:
给定一个字符串,找出其中第一个不重复的字符并返回它的索引。如果不存在,则返回 -1。
"cc" // -1
"ccdd" // -1
"leetcode" // 1
"loveleetcode" // 2
"abcabd" // 2
"thedailybyte" // 1
"developer" // 0
我的方法通过了除第二个测试用例"ccdd" 之外的所有测试用例。我期待-1,但收到4。不知道为什么。
var firstUniqChar = function(s) {
if(!s || s.length === 0 ) return -1
else if(s.length === 1) return 0
let pointer1 = 0
let pointer2 = pointer1 + 1
if(s.length > 2){
while(pointer2 <= s.length - 1){
if(s[pointer1] !== s[pointer2])
pointer2++
else if(s[pointer1] === s[pointer2])
pointer1++
}
return pointer1
}
return -1
};
【问题讨论】:
-
一些有用的问题来指导您的调试:
pointer1 >= pointer2时会发生什么?应该发生什么?如果pointer1 >= s.length,该方法应该返回什么? -
如果我将 while 语句更改为
pointer1 >= pointer2或pointer1 >= s.length它返回0,而不是-1。它还为其他测试用例返回0,例如"loveleetcode"
标签: javascript pointers data-structures