الترتيب الكامل للسلاسل ، والمحتوى المحدد هو كما يلي
أدخل سلسلة وطباعة جميع ترتيبات الأحرف في السلسلة بترتيب القاموس. على سبيل المثال ، أدخل السلسلة ABC ، وطباعة جميع الأوتار ABC و ACB و BCA و CAB و CBA التي يمكن ترتيبها بواسطة الأحرف A و B و C. يرجى إخراج النتائج الأبجدية.
اعتماد فكرة العودية:
تقسيم السلاسل التي تحتاج إلى ترتيب كامل إلى جزأين:
(1) الحرف الأول من السلسلة ؛
(2) جميع الأحرف بعد الحرف الأول ؛
ابحث عن جميع الشخصيات التي قد تظهر في الموضع الأول ؛ تبادل الشخصية الأولى والأحرف التالية في وقت واحد ؛
إصلاح الشخصية الأولى وابحث عن الترتيب الكامل لجميع الأحرف بعد الحرف الأول. يمكن تقسيم جميع الأحرف التي تتبع الحرف الأول إلى جزأين ؛
كود جافا:
استيراد java.util.arraylist ؛ استيراد java.util.treeset ؛ حل الفئة العامة {public ArrayList <string> perfiction (String str) {ArrayList <String> res = new ArrayList <String> () ؛ if (str == null || str.length () == 0) {return res ؛ } char [] chararray = str.tochararray () ؛ // الإخراج بترتيب إدخال Treeset <String> tempres = New Treeset <string> () ؛ PertictateCore (Chararray ، Tempres ، 0) ؛ Res.Addall (Tempres) ؛ عودة الدقة ؛ } private void pertictateCore (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)) ؛ // خروج متكررة} آخر {for (int i = loc ؛ i <chararray.length ؛ i ++) {swap (Chararray ، i ، loc) ؛ SWAP (Chararray ، I ، LOC) ؛ // تبديل الشخصيات التي تم تبادلها مسبقًا بحيث يمكن تبادل الشخصية الأولى مع أحرف أخرى}}}} مبادلة void الخاصة (char [] chararray ، int i ، int j) {char temp = Chararray [i] ؛ Chararray [i] = Chararray [J] ؛ chararray [j] = temp ؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.