該代碼非常簡單。它會檢查一次所有字符並取代它們的第一次出現。但是,輸入=「aab」失敗。我不知道爲什麼。 編程語言是java。找出一個字符串是否包含唯一字符
public class Solution {
/**
* @param str: a string
* @return: a boolean
*/
public boolean isUnique(String str) {
// write your code here
for(int i = 0; i <= 127; i++) {
s = Character.toString((char) i);
if(str.contains(s))
str = str.replaceFirst(s, "");
}
if(str.length() == 0)
return true;
return false;
}
}
編輯
我改變了代碼。現在,它引發錯誤輸入
[email protected]#$%^&*()_+
錯誤:
異常在線程 「主」 java.util.regex.PatternSyntaxException:鄰近索引1(^在未關閉的java.util.regex.Pattern中組。錯誤(Pattern.java:1924)位於java.util.regex.Pattern.accept(Pattern.java:1782)位於java.util.regex.Pattern.group0(Pattern.java:2857)位於java.util.regex.Pattern .sequence(Pattern.java:2018)at java.util.regex.Pattern.expr(Pattern.java:1964)at java.util.regex.Pattern.compile(Pattern.java:1665)at java.util.regex。模式。(Pattern.java:1337)at java.util.regex.Pattern.compile(Pattern.java:1022)at java.lang.String.replaceFirst(String.java:2119)at Solution.isUnique(Solution.java: 12)在Main .main(Main.java:11)
截至目前它將所有字符替換爲「」(空)和atlast'str.length()總是0 –
@TejuMB我的想法是檢查每個字符一次並替換它的第一次出現。我仍然不明白長度總是如何0 –