Я пытаюсь решить проблему в строках, находя совпадающие символы в строке.
Я решаю это, используя Character Array и внутренний цикл, но я думаю, что это требует больше времени. поэтому попробуйте решить эту проблему в бинарном поиске по массивам, но это приведет к неуместному результату. Мне нужна рабочая структура метода бинарного поиска в Java.
Я установил совпадающее значение во второй строке для дублирования символа '#', потому что не хочу совпадать с другим символом.
public static void main(String[] args) {
Scanner s= new Scanner(System.in);
String team1 = s.next();
String team2 = s.next();
char[] teamA = team1.toCharArray();
char[] teamB = team2.toCharArray();
Arrays.sort(teamB);
int count = 0;
for(int a=0;a< teamA.length;a++) {
int index = Arrays.binarySearch(teamB, teamA[a]);
if(index >= 0) {
count++;
teamB[index] = '#';
}
}
System.out.println(count);
}
если я введу две строки
"aabc" и "zbaa" ожидаемый результат равен 3
но моя программа выдает результат 2.