码迷,mamicode.com
首页 > 其他好文 > 详细

(Easy) Reverse Vowels of a String - LeetCode

时间:2019-08-31 23:42:10      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:tar   func   one   leo   leetcode   int   mamicode   fun   ++   

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

标签:tar   func   one   leo   leetcode   int   mamicode   fun   ++   

原文地址:https://www.cnblogs.com/codingyangmao/p/11440767.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!