이 기사에서는 Java가 문자열 배열 및 참조 조합을 구현하는 문제를 소개합니다. 특정 내용은 다음과 같습니다
java.util.arraylist 가져 오기; java.util.collections import; /*** 문자열을 입력하고 사전 순서로 문자열에 문자의 모든 배열을 인쇄합니다. 예를 들어, 문자열 ABC를 입력 한 다음 문자 A, B, C로 배열 할 수있는 모든 문자열 ABC, ACB, BAC, BCA, CAB 및 CBA를 인쇄합니다. * * @author pomay * */ public class solution_stringarrange {public arraylist <string> 순열 (String Str) {if (str == null) return null; ArrayList <string> list = new ArrayList <string> (); char [] pstr = str.tochararray (); 순열 (pstr, 0, list); collections.sort (목록); 반환 목록; } static void 순열 (char [] str, int i, arraylist <string> list) {// if (str == null) 반환; // if (i == str.length -1) {if (list.contains (string.valueof (str))) retud; list.add (string.valueof (str)); } else {// I는 현재 배열 작업을 수행하는 문자열의 첫 번째 문자를 가리 킵니다 (int j = i; j <str.length; j ++) {// 다음 문자 char temp = str [j]로 배열 작업을 수행하는 문자열의 첫 번째 문자를 교환합니다. str [j] = str [i]; str [i] = 온도; // 교환 후, i 후에 문자열의 재귀 배열을 수행하십시오. 순열 (str, i + 1, list); // 각 라운드가 끝나면 다시 전환하여 다음 라운드의 배열 temp = str [j]; str [j] = str [i]; str [i] = 온도; }}} public static void main (String [] args) {String str = "aab"; Solution_stringArrange Changestring = 새로운 Solution_stringArrange (); ArrayList <string> list = Changestring.permutation (str); for (int i = 0; i <list.size (); i ++) {system.out.print (list.get (i)+""); }}} 콤비네이션:
길이 n의 문자열에서 첫 번째 문자를 선택한 다음 길이 n-1의 나머지 문자열에서 m-1 문자를 선택하거나 길이 n의 문자열에서 첫 번째 문자를 선택하지 않은 다음 길이 n-1의 나머지 문자열에서 m 문자를 선택하십시오.
java.util.arraylist 가져 오기; Java.util.list 가져 오기; /*** 문자열을 입력하고 사전 순서로 문자열의 문자의 모든 조합을 인쇄합니다. 예를 들어, 문자열 ABC를 입력하고 모든 문자열 A, B, C, AB, AC, BC *, ABC를 인쇄합니다. 질문 m * * @author pomay * */ public class solution_stringcombination {// 문자열 ABC> A, B, C, AB, AC, ABC Public STATIC Void erm (String S) {list <string> result = new arraylist <string> ()에서 모든 문자의 조합을 찾는 n 문자의 조합을 찾는 질문; // (int i = 1; i <= s.length (); i ++) {combin (s, i, result); }} // 문자열에서 m 문자를 선택하여 공개 정적 무효 조합 (문자열 s, int m, list <string> result) {// m == 0이면 재귀가 끝납니다. (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); result.remove (result.size () -1); // 현재 요소 조합을 선택하지 마십시오 (s.substring (1, s.length ()), m, result); }} public static void main (String [] args) {String str = "abc"; Perm (str); }}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.