Java ile Anagram Bulma Programı
Kullanıcının girdiği metindeki harflerin tüm anagramlarını bulan Java programı. Dikkat ! uzun bir metin girmemeniz tavsiye edilir.
import java.util.ArrayList;
import java.util.List;
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();
List < String > anagramlar = new ArrayList<>();
boolean[] kullanilanHarfler = new boolean[metin.length()];
findAnagrams(metin, "", kullanilanHarfler, anagramlar);
System.out.println("Tüm anagramlar:");
for (String anagram : anagramlar) {
System.out.println(anagram);
}
scanner.close();
}
private static void findAnagrams(String metin, String anagram, boolean[] kullanilanHarfler, List < String > anagramlar) {
if (anagram.length() == metin.length()) {
anagramlar.add(anagram);
return;
}
for (int i = 0; i < metin.length(); i++) {
if (!kullanilanHarfler[i]) {
kullanilanHarfler[i] = true;
findAnagrams(metin, anagram + metin.charAt(i), kullanilanHarfler, anagramlar);
kullanilanHarfler[i] = false;
}
}
}
}
Java ile Kullanıcıdan metni al
System.out.print("Metni girin: ");
String metin = scanner.nextLine();
Java ile Anagramları tutmak için bir liste oluştur
List < String > anagramlar = new ArrayList<>();
Java ile Kullanılan harfleri takip etmek için bir dizi oluştur
boolean[] kullanilanHarfler = new boolean[metin.length()];
Java ile Anagramları bulan metodu çağır
findAnagrams(metin, "", kullanilanHarfler, anagramlar);
Java ile Bulunan tüm anagramları ekrana yazdır
System.out.println("Tüm anagramlar:");
for (String anagram : anagramlar) {
System.out.println(anagram);
}
scanner.close();
}
Java ile Anagramları bulan metot
private static void findAnagrams(String metin, String anagram, boolean[] kullanilanHarfler, List < String > anagramlar) {
// Eğer anagram, metindeki tüm harfleri içeriyorsa anagramları listeye ekle
if (anagram.length() == metin.length()) {
anagramlar.add(anagram);
return;
}
// Metindeki harfleri gez ve anagramları bul
for (int i = 0; i < metin.length(); i++) {
if (!kullanilanHarfler[i]) {
kullanilanHarfler[i] = true;
findAnagrams(metin, anagram + metin.charAt(i), kullanilanHarfler, anagramlar);
kullanilanHarfler[i] = false;
}
}
}