code-neon

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;
            }
        }
    }