Код очень прост. Он проверяет все символы один раз и заменяет их первое появление. Однако он не подходит для ввода = "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;
}
}
EDIT
Я изменил код. Теперь его метание ошибки ввода
[email protected]#$%^&*()_+
Ошибка:
Исключение в потоке "основной" java.util.regex.PatternSyntaxException: незавершенная группа рядом с индексом 1 (^ в java.util.regex.Pattern. error (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) в java.util.regex.Pattern.expr (Pattern.java:1964) в java.util.regex.Pattern.compile (Pattern.java:1665) в java.util.regex. Шаблон. (Pattern.java:1337) в java.util.regex.Pattern.compile (Pattern.java:1022) в java.lang.String.replaceFirst (String.java:2119) в Solution.isUnique (Solution.java: 12) в Главном .main (Main.java:11)
На данный момент он заменяет весь символ символом «» (пустой) и atlast 'str.length()' всегда 0 –
@TejuMB Моя идея - проверить каждый символ один раз и заменить его первым вступлением. Я до сих пор не понимаю, как длина всегда 0 –