電源ボタン - 総額完全な配列

それぞれの文字の場合、文字列シフトによる文字列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])。
             }  
         }
         
     } 
}

 

おすすめ

転載: www.cnblogs.com/JAYPARK/p/11239060.html