Я хочу написать функцию, которая принимает две строки в качестве входных данных и возвращает перекрытие между ними. Например: S1 = «ABCD» и S2 = «CDBA», функция должна возвращать перекрытие = 2, потому что суффикс первой строки и префикса второго аналогичен 2 char «CD» i, напишите этот код:вычислить перекрытие между двумя строками в Java
public class JavaStringArrayTests {
public static void main(String[] args){
JavaStringArrayTests jj= new JavaStringArrayTests();
System.out.print(jj.overlap());
}
int overlap() {
String f1 = "ABCD";
String f2 = "DBCA";
int max=0;
char[] first= f1.toLowerCase().toCharArray();
char[] second= f2.toLowerCase().toCharArray();
for (int i=0; i<4; i++) {
for (int i2=i; i2<4; i2++) {
for (int j=0; j<4; j++) {
if (first[i]==second[j])
max++;
else break;
}
if (max==0)
break;
}
}
return max;
}
}
этот код работает со строками без повторения, но когда я ставлю Например: S1 = «ATTC» и S2 = «TTCA», он не работает, есть ли какие-либо идеи для расчета этого? Спасибо
, сколько символ должен соответствовать, чтобы сказать, что перекрытие, 2, выше? – CodeIsLife
Вам не нужно 3 вложенных цикла для этого ... просто 2 должно быть достаточно (для базового подхода). –
Вы пытаетесь найти символы, которые одинаковы для одного и того же индекса на разных строках? Скажем, 'ABCDE' и' XXCXXE' должны вернуть 2? – dambros