文字列の(簡単に)リバース母音 - LeetCode

説明:

入力として文字列を取る関数を書くと文字列の唯一の母音を逆転。

例1:

入力:"hello"を
出力:"holle"

例2:

入力:"leetcode" 
出力:"leotcede"

注意:
母音は「Y」の文字が含まれていません。

 

溶液:

最初の試み:1の場合に失敗しました。 

クラスソリューション{
     パブリック文字列reverseVowels(文字列S){ 
        
        もし、(S == NULL || s.length()== 0 ){
             戻り ヌル
        } 
        
        
        文字列TMP = "" ; 
        
        以下のためにint型 i = 0; i)は(s.lengthを<; iは++ ){ 
            
            場合(s.charAt(I)== '' || s.charAt(I)== 'E' || s.charAt( I)== 'i'をs.charAt(I)== 'O' || s.charAt(I)== 'は、U'はs.charAt(I)== '' || S ||。 charAt(I)== 'E' || s.charAt(I)== '私は' || s.charAt(I)== 'O' || s.charAt(I)== 'U' 
                、TMP = TMP + s.charAt(I)。
        
        
        
        文字列のRES = "" ;
      以下のためにint型 i = 0; i)は(s.lengthを<; iは++ ){ 
          
          場合(s.charAt(I)== '' || s.charAt(I)== 'E' || s.charAt( I)== 'i'をs.charAt(I)== 'O' || s.charAt(I)== 'は、U'はs.charAt(I)== '' || S ||。 charAt(I)== 'E' || s.charAt(I)== '私は' || s.charAt(I)== 'O' || s.charAt(I)== 'U' ){ 
              
              RESの =のRES + tmp.charAt(K)。
              kは = K-1 
          } 
          { 
              
              RESの = RES + s.charAt(I)。
          } 
          
          
      } 
        戻りRES。
        
        
    } 
}

 

 

 

 第二の試み

溶液:

クラスソリューション{
     パブリック文字列reverseVowels(文字列S){ 
        
        もし、(S == NULL || s.length()== 0 ){
             リターン "" 
        } 
        
        
        文字列TMP = "" ; 
        
        INT = 0を起動しますINT端= s.length() - 1 ; 
        StringBuilderのSB = 新しいStringBuilderの(S)。
        
        ブール exchange_flag = ;
        ブール start_flag = ;
        ブール end_flag = ;
          文字tmp_char2 = ' - ' ; 
          文字tmp_char1 = ' - ' ;
        一方、(開始< エンド){ 
             
            場合(isVowel(s.charAt(起動))){ 
                 start_flag = 
             
                  tmp_char1 = s.charAt(開始)
                
            } { 
                
                起動 1 + START = 
            } 
            
            であれば(isVowel(s.charAt(終了))){ 
                
              
                 end_flag = 
                  tmp_char2 = s.charAt(エンド)。
                
            }
            {  =エンド- 1 
            } 
            
            であれば(start_flag && end_flag){ 
                
                sb.deleteCharAt(スタート)。
                sb.insert(スタート、tmp_char2)。
                sb.deleteCharAt(エンド)。
                sb.insert(エンド、tmp_char1)。

                開始 = 1 +始めます
                エンド =エンド-1 ; 
                start_flag = ; 
                end_flag = ; 
            } 
     
        } 
        
        
        
       / *  
        のための(I = 0 int型、iが(s.lengthを<); iが++){
            
            もし(s.charAt(I)== '' || s.charAt(I)== 'E' || s.charAt(I)== '私は' || s.charAt(I)==」 O '|| s.charAt(I)==' U '|| s.charAt(I)==' '|| s.charAt(I)==' E '|| s.charAt(I)= = '私は' || s.charAt(I)== 'O' || s.charAt(I)== 'U')
                TMP = TMP + s.charAt(I)。
        } 
        
        int型K = tmp.length() - 1; 
        
        文字列のRES = ""; 
      以下のために(INT i = 0; i)は(s.lengthを<; iは++){ 
          
          IF(s.charAt(I)== '' || s.charAt(I)== 'E' || s.charAt( I)== 'i'をs.charAt(I)== 'O' || s.charAt(I)== 'は、U'はs.charAt(I)== '' || S ||。 charAt(I)== 'E' || s.charAt(I)== '私は' || s.charAt(I)== 'O' || s.charAt(I)== 'U'){ 
              
              RESの=のRES + tmp.charAt(K)。
              K = K-1。
          } 
          他{ 
              
              RESの= RES + s.charAt(I)。
          }
          
          
      } 
      * / 
        リターンsb.toString()。
        
        
    } 
    パブリック・ ブールisVowel(文字ではない){ 
        
        IF(ない== '| ==ない'ノー|| == '彼女がした|| ==' O == ||ない「Uを|| '' || == NO 'E' || ==なし'I' == || || O Uを==ませんでしたが==ません{)
             を返す 
        } 
        エルス{
             戻り 
        } 
        
    } 
}

 

 

おすすめ

転載: www.cnblogs.com/codingyangmao/p/11440767.html