Pengaturan penuh string, konten spesifik adalah sebagai berikut
Masukkan string dan cetak semua pengaturan karakter dalam string dalam urutan kamus. Misalnya, masukkan string ABC, cetak semua string ABC, ACB, BCA, CAB dan CBA yang dapat diatur oleh karakter A, B, C. Harap output hasil urutan alfabet.
Mengadopsi gagasan rekursi:
Bagilah string yang perlu sepenuhnya diatur menjadi dua bagian:
(1) karakter pertama dari string;
(2) semua karakter setelah karakter pertama;
Temukan semua karakter yang mungkin muncul di posisi pertama; bertukar karakter pertama dan karakter berikut sekaligus;
Perbaiki karakter pertama dan temukan pengaturan lengkap semua karakter setelah karakter pertama. Semua karakter yang mengikuti karakter pertama dapat dibagi menjadi dua bagian;
Kode Java:
impor java.util.arraylist; impor java.util.treeset; solusi kelas publik {public arraylist <string> permutasi (string str) {arraylist <string> res = arraylist baru <string> (); if (str == null || str.length () == 0) {return res; } char [] chararray = str.tochararray (); // output dalam urutan input Dictionary Treeset <String> Tempres = TreeSet baru <String> (); PermutationCore (Chararray, Tempres, 0); res.addall (Tempres); Return Res; } private void permutationCore (char [] chararray, treeset <string> tempres, int loc) {if (chararray == null || chararray.length == 0 || loc <0 || loc> chararray.length-1) {return; } if (loc == chararray.length-1) {tempres.add (string.valueof (chararray)); // recursive out} else {for (int i = loc; i <chararray.length; i ++) {swap (chararray, i, loc); // swap karakter pertama dengan karakter pertama) {swap (chararray, i, loc);/sukun karakter pertama dengan karakter pertama dengan karakter berikut) {chararray, i, loc); // Sukihkan karakter pertama dengan karakter pertama berikut swap (chararray, i, loc); // swap kembali karakter yang sebelumnya dipertukarkan sehingga karakter pertama dapat dipertukarkan dengan karakter lain}}}} swap void pribadi (char [] chararray, int i, int j) {char temp = chararray [i]; chararray [i] = chararray [j]; chararray [j] = temp; }}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.