บทความนี้แนะนำปัญหาของการจัดเรียงสตริง 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> การเปลี่ยนแปลง (String str) {ถ้า (str == null) ส่งคืน null; ArrayList <String> list = new ArrayList <String> (); ถ่าน [] PSTR = str.toChararray (); การเปลี่ยนแปลง (PSTR, 0, รายการ); collections.sort (รายการ); รายการคืน; } การเปลี่ยนแปลงโมฆะคงที่ (char [] str, int i, arraylist <String> รายการ) {// ถ้าว่างถ้า (str == null) กลับ; // ถ้าฉันชี้ไปที่อักขระสุดท้ายถ้า (i == str.length - 1) {ถ้า (list.contains (string.valueof (str))) กลับ; list.add (string.valueof (str)); } else {// ฉันชี้ไปที่อักขระแรกของสตริงที่กำลังดำเนินการเปลี่ยนแปลงสำหรับ (int j = i; j <str.length; j ++) {// แลกเปลี่ยนอักขระแรกของสตริงที่ดำเนินการเปลี่ยนรูปด้วยอักขระต่อไปนี้ str [j] = str [i]; str [i] = อุณหภูมิ; // หลังจากการแลกเปลี่ยนให้ดำเนินการจัดเรียงแบบเรียกซ้ำของสตริงหลังจากฉัน การเปลี่ยนแปลง (str, i + 1, รายการ); // หลังจากแต่ละรอบสิ้นสุดให้สลับกลับเพื่อดำเนินการรอบต่อไปของการจัดเรียงอุณหภูมิ = str [j]; str [j] = str [i]; str [i] = อุณหภูมิ; }}} โมฆะคงที่สาธารณะหลัก (สตริง [] 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 * */ โซลูชันคลาสสาธารณะ _stringcombination {// ค้นหาการรวมกันของอักขระทั้งหมดในสตริง abc> a, b, c, ab, ac, bc, abc public public static void perm // เริ่มต้นด้วยหนึ่งสำหรับ (int i = 1; i <= s.length (); i ++) {การรวมกัน (s, i, ผลลัพธ์); }} // เลือกอักขระ M จากการรวมกันเป็นโมฆะแบบคงที่สาธารณะ (String S, int M, รายการ <String> ผลลัพธ์) {// ถ้า m == 0 จากนั้นจะสิ้นสุดการเรียกซ้ำ ผลลัพธ์ปัจจุบันเอาต์พุตถ้า (m == 0) {สำหรับ (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) + ""); // การใช้งาน substring, สกัดกั้นการรวมกันของสตริงจาก 1 ถึงจุดสิ้นสุดของการรวมกัน n (s.substring (1, s.length ()), m - 1, ผลลัพธ์); result.remove (result.size () - 1); // อย่าเลือกการรวมองค์ประกอบปัจจุบัน (s.substring (1, s.length ()), m, ผลลัพธ์); }} โมฆะคงที่สาธารณะหลัก (สตริง [] args) {string str = "abc"; Perm (Str); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น