(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;
        }
        
    }
}

 

 

转载于:https://www.cnblogs.com/codingyangmao/p/11440767.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值