(Easy) Reverse Vowels of a String - LeetCode

Posted codingyangmao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(Easy) Reverse Vowels of a String - LeetCode相关的知识,希望对你有一定的参考价值。

Description:

Write a function that takes a string as input and reverse only the vowels of a string.

Example 1:

Input: "hello"
Output: "holle"

Example 2:

Input: "leetcode"
Output: "leotcede"

Note:
The vowels does not include the letter "y".

 

Solution:

first attempt:  failed one case. 

class Solution 
    public String reverseVowels(String s) 
        
        if(s ==null|| s.length()==0)
            return null;
        
        
        
        String tmp = "";
        
        for(int i = 0 ; i<s.length(); i++)
            
            if(s.charAt(i)==‘a‘||s.charAt(i)==‘e‘||s.charAt(i)==‘i‘||s.charAt(i)==‘o‘||s.charAt(i)==‘u‘||s.charAt(i)==‘A‘||s.charAt(i)==‘E‘||s.charAt(i)==‘I‘||s.charAt(i)==‘O‘||s.charAt(i)==‘U‘)
                tmp = tmp+s.charAt(i);
        
        
        int k = tmp.length()-1;
        
        String res = "";
      for(int i = 0; i<s.length();i++)
          
          if(s.charAt(i)==‘a‘||s.charAt(i)==‘e‘||s.charAt(i)==‘i‘||s.charAt(i)==‘o‘||s.charAt(i)==‘u‘||s.charAt(i)==‘A‘||s.charAt(i)==‘E‘||s.charAt(i)==‘I‘||s.charAt(i)==‘O‘||s.charAt(i)==‘U‘)
              
              res = res+tmp.charAt(k);
              k = k-1;
          
          else
              
              res = res+s.charAt(i);
          
          
          
      
        return res;
        
        
    

 

 

技术图片

 

 Second Attempt

Solution:

class Solution 
    public String reverseVowels(String s) 
        
        if(s ==null|| s.length()==0)
            return "";
        
        
        
        String tmp = "";
        
        int start = 0; 
        int end = s.length()-1;
        StringBuilder sb= new StringBuilder(s);
        
        boolean exchange_flag=false;
        boolean start_flag = false;
        boolean end_flag  = false;
          Character tmp_char2 =‘-‘;
          Character tmp_char1 =‘-‘;
        while(start<end)
             
            if(isVowel(s.charAt(start)))
                 start_flag = true;
             
                  tmp_char1 = s.charAt(start);
                
            else
                
                start = start+1;
            
            
            if(isVowel(s.charAt(end)))
                
              
                 end_flag = true;
                  tmp_char2 = s.charAt(end);
                
            
            else
                end = end - 1;
            
            
            if(start_flag&&end_flag)
                
                sb.deleteCharAt(start);
                sb.insert(start,tmp_char2);
                sb.deleteCharAt(end);
                sb.insert(end,tmp_char1);

                start = start+1;
                end = end-1;
                start_flag = false;
                end_flag = false;
            
     
        
        
        
        
       /* 
        for(int i = 0 ; i<s.length(); i++)
            
            if(s.charAt(i)==‘a‘||s.charAt(i)==‘e‘||s.charAt(i)==‘i‘||s.charAt(i)==‘o‘||s.charAt(i)==‘u‘||s.charAt(i)==‘A‘||s.charAt(i)==‘E‘||s.charAt(i)==‘I‘||s.charAt(i)==‘O‘||s.charAt(i)==‘U‘)
                tmp = tmp+s.charAt(i);
        
        
        int k = tmp.length()-1;
        
        String res = "";
      for(int i = 0; i<s.length();i++)
          
          if(s.charAt(i)==‘a‘||s.charAt(i)==‘e‘||s.charAt(i)==‘i‘||s.charAt(i)==‘o‘||s.charAt(i)==‘u‘||s.charAt(i)==‘A‘||s.charAt(i)==‘E‘||s.charAt(i)==‘I‘||s.charAt(i)==‘O‘||s.charAt(i)==‘U‘)
              
              res = res+tmp.charAt(k);
              k = k-1;
          
          else
              
              res = res+s.charAt(i);
          
          
          
      
      */
        return sb.toString();
        
        
    
    public boolean isVowel(Character cha)
        
        if(cha==‘a‘|cha==‘e‘||cha==‘i‘||cha==‘o‘||cha==‘u‘||cha==‘A‘||cha==‘E‘||cha==‘I‘||cha==‘O‘||cha==‘U‘)
            return true;
        
        else
            return false;
        
        
    

 

技术图片

 

以上是关于(Easy) Reverse Vowels of a String - LeetCode的主要内容,如果未能解决你的问题,请参考以下文章

345. Reverse Vowels of a String

345. Reverse Vowels of a String

LeetCode Reverse Vowels of a String

LeetCode #345 Reverse Vowels of a String

[LeetCode]345 Reverse Vowels of a String

LeetCode 345. Reverse Vowels of a String