تقدم هذه المقالة مشكلة ترتيب سلسلة تنفيذ Java ومجموعة للرجوع إليها. المحتوى المحدد كما يلي
استيراد java.util.arraylist ؛ استيراد java.util.collections ؛ /*** أدخل سلسلة وطباعة جميع ترتيبات الأحرف في السلسلة بترتيب القاموس. على سبيل المثال ، أدخل السلسلة ABC ، ثم قم بطباعة جميع الأوتار ABC و ACB و BAC و * BCA و CAB و CBA التي يمكن ترتيبها بواسطة الشخصيات A ، B ، C. * * author pomay * */ public class solution_stringarrange {public arraylist <string> perficture (String str) {if (str == null) return null ؛ ArrayList <string> list = new ArrayList <String> () ؛ char [] pstr = str.tochararray () ؛ التقليب (PSTR ، 0 ، قائمة) ؛ collections.sort (قائمة) ؛ قائمة العودة } تقليب باطل ثابت (char [] str ، int i ، arraylist <string> list) {// if reghing if (str == null) return ؛ // إذا أشيرت إلى الحرف الأخير إذا (i == str.length - 1) {if (list.contains (string.valueof (str))) return ؛ list.add (string.valueof (str)) ؛ } آخر {// I يشير إلى الحرف الأول من السلسلة التي تقوم حاليًا بعملية التقليب لـ (int j = i ؛ j <str.length ؛ j ++) {// تبادل الحرف الأول للسلسلة القيام بعملية التقليب مع جميع الأحرف التالية temp = str [j] ؛ str [j] = str [i] ؛ str [i] = temp ؛ // بعد التبادل ، قم بتنفيذ الترتيب العودية للسلاسل بعد i. التقليب (str ، i + 1 ، قائمة) ؛ // بعد انتهاء كل جولة ، قم بتشغيل مرة أخرى لأداء الجولة التالية من ترتيب temp = str [j] ؛ str [j] = str [i] ؛ str [i] = temp ؛ }}} public static void main (string [] args) {string str = "aab" ؛ solution_stringArrange changestring = new solution_stringArrange () ؛ ArrayList <String> list = changestring.permutation (str) ؛ لـ (int i = 0 ؛ i <list.size () ؛ i ++) {system.out.print (list.get (i)+"") ؛ }}} مزيج:
إما تحديد الحرف الأول في سلسلة الطول n ، ثم حدد أحرف M-1 في السلاسل المتبقية بطول N-1 ، أو لا تحدد الحرف الأول في سلسلة الطول n ، ثم حدد أحرف M في السلاسل المتبقية من الطول N-1
استيراد java.util.arraylist ؛ استيراد java.util.list ؛ /*** أدخل سلسلة وطباعة جميع مجموعات الأحرف في السلسلة بترتيب القاموس. على سبيل المثال ، أدخل السلسلة ABC ، قم بطباعة جميع الأوتار A ، B ، C ، AB ، AC ، BC *، ABC. سؤال للعثور على مجموعة من الأحرف n ذات الطول m * * author pomay * */ public class solution_stringCombination {// ابحث عن مجموعة من جميع الأحرف في سلسلة abc> a ، b ، c ، ab ، ac ، bc ، abc place perm static perf (سلسلة s) // ابدأ بواحد لـ (int i = 1 ؛ i <= s.length () ؛ i ++) {comple (s ، i ، result) ؛ }} // حدد أحرف M من سلسلة الفراغ الثابتة في السلسلة (السلسلة S ، int M ، قائمة <Tring> نتيجة) {// if m == 0 ، ثم النهايات المتكررة. الإخراج النتيجة الحالية if (m == 0) {for (int i = 0 ؛ i <result.size () ؛ i ++) {system.out.print (result.get (i)) ؛ } system.out.print ("،") ؛ يعود؛ } if (s.length ()! = 0) {// حدد العنصر الحالي result.add (s.charat (0) + "") ؛ // استخدام السلسلة الفرعية ، اعتراض مجموعة السلسلة من 1 إلى نهاية مجموعة N (S.SubString (1 ، S.Length ()) ، M - 1 ، النتيجة) ؛ result.remove (result.size () - 1) ؛ // لا تحدد مجموعة العناصر الحالية (S.SubString (1 ، S.Length ()) ، M ، النتيجة) ؛ }} public static void main (string [] args) {string str = "abc" ؛ بيرم (str) ؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.