Просто чиститься на некоторые простые вещи из java. Я пытаюсь проверить, является ли строка уникальной, и я решил, что лучший способ - сделать это через рекурсию. Вот то, что я до сих пор, но я получаю ошибку выхода за границы, очевидно, я что-то довольно просто: с видомНайти, если строка имеет все уникальные символы, используя рекурсию.
public class uniqueCharString {
public static void main(String [] args){
String a = "abcdefghijk";
System.out.println(unique(a));
}
public static boolean unique(String s){
if(s.substring(1).contains(String.valueOf(s.charAt(0)))){
return false;
}
else return unique(s.substring(1));
}
}
хорошо, так что я закончил свой образ мышления. Я получил некоторые полезные советы от вас, ребята, но я хотел закончить свой мыслительный процесс. Как это решение сравнивается с некоторыми из тех, которые вы сказали, используя набор?
public static boolean unique(String s){
for(int x = 0; x < s.length(); x++){
if(s.substring(x+1).contains(String.valueOf(s.charAt(x)))){
return false;
}
}
return true;
}
'Я полагал, что лучше всего было бы не сделать это через recursion' нет нет – Kon
Пожалуйста, не уточнить, что вы подразумеваете под«уникальный»? Разве что один и тот же символ не должен появляться дважды? Также я согласен с @Kon, рекурсия редко является эффективным подходом к обработке строк. – Gergely
Да нет ни одного персонажа. Хорошо, спасибо за подсказку – erp