それぞれの文字の場合、文字列シフトによる文字列S、Sを考えると、我々は新しい文字列を取得することができます。得られたすべての可能な文字列のセットを返します。
例:
入力:S = "A1B2"
出力:[ "A1B2"、 "A1B2 "、 "A1B2"、 "A1B2"]
入力:S = "3z4"
出力:[ "3z4"、 "3Z4 "]
入力:S = "12345"
出力:[ "12345"]
注:
長さSこれ以上12以下です。
数字と文字のみによってS。
出典:ボタン(LeetCode)に滞在
します。https://leetcode-cn.com/problems/letter-case-permutationリンク
すべてのネットワークからの控除が著作権を保有します。商業転載は許可公式、非商用の転載は、ソースを明記してくださいお問い合わせください。
クラスのソリューション{ 公共の一覧<文字列> letterCasePermutation(文字列S){ リスト <文字列>リスト= 新しいArrayListを(); CHAR [] ARR = S.toCharArray()。 関数(リスト、ARR、 0 ); 戻り値のリスト。 } 公共 ボイド関数(リストの<string>リストは、char型、ARR [] int型{i)が あれば(I> = arr.length){ list.add(新しい文字列(ARR))。 返します。 } 関数(リスト、ARR、私+ +1); // 私は、文字の位置を移動しませんでした。 IF(!Character.isDigitによって(ARR [I])){ // 数字以外の文字の位置I、小さな規模の大小に。 IF (Character.isUpperCase(ARR [I])){ ARR [I]は = ; Character.toLowerCase(ARR [I]) 機能(一覧、ARR、I + +1 ); ARR [I]は = Character.toLowerCase(ARRの[ I]); } 他{ ARR [I] = Character.toUpperCase(ARR [I]); 機能(一覧、ARR、I + +1 ); ARR [I] = Character.toLowerCase(ARR [I])。 } } } }