Java En Uzun Tekrar Eden Alt Dize Bulma
Kullanıcının girdiği metindeki en uzun tekrar eden alt diziyi bulan Java programı.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Metni girin: ");
String metin = scanner.nextLine();
String enUzunAltDizi = findLongestRepeatingSubstring(metin);
System.out.println("En uzun tekrar eden alt dize: " + enUzunAltDizi);
scanner.close();
}
private static String findLongestRepeatingSubstring(String str) {
int len = str.length();
String enUzunAltDizi = "";
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
String altDizi = str.substring(i, j);
int tekrarSayisi = countOccurrences(str, altDizi);
if (tekrarSayisi > 1 && altDizi.length() > enUzunAltDizi.length()) {
enUzunAltDizi = altDizi;
}
}
}
return enUzunAltDizi;
}
private static int countOccurrences(String str, String subStr) {
int count = 0;
int i = 0;
while ((i = str.indexOf(subStr, i)) != -1) {
i += subStr.length();
count++;
}
return count;
}
}
Java ile Kullanıcıdan metni al
System.out.print("Metni girin: ");
String metin = scanner.nextLine();
Java ile En uzun tekrar eden alt dizeyi bul ve sonucu ekrana yazdır
String enUzunAltDizi = findLongestRepeatingSubstring(metin);
System.out.println("En uzun tekrar eden alt dize: " + enUzunAltDizi);
scanner.close();
}
Java ile En uzun tekrar eden alt dizeyi bulan metot
private static String findLongestRepeatingSubstring(String str) {
int len = str.length();
String enUzunAltDizi = "";
Tüm alt dizileri gezmek için i ve j indeksleri kullanılır
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
// Alt dizeyi bul
String altDizi = str.substring(i, j);
// Alt dizenin tekrar sayısını hesapla
int tekrarSayisi = countOccurrences(str, altDizi);
// Alt dize en az 2 kere tekrar etmişse ve daha uzunsa, en uzun alt dizi olarak ayarla
if (tekrarSayisi > 1 && altDizi.length() > enUzunAltDizi.length()) {
enUzunAltDizi = altDizi;
}
}
}
return enUzunAltDizi;
}
Java ile Bir ana dizide alt dizelerin tekrar sayısını hesaplayan metot
private static int countOccurrences(String str, String subStr) {
int count = 0;
int i = 0;
while ((i = str.indexOf(subStr, i)) != -1) {
i += subStr.length();
count++;
}
return count;
}