(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

时间: 2024-08-06 13:31:03

(Easy) Reverse Vowels of a String - LeetCode的相关文章

Reverse Vowels of a String Leetcode

Write a function that takes a string as input and reverse only the vowels of a string. Example 1:Given s = "hello", return "holle". Example 2:Given s = "leetcode", return "leotcede". Note:The vowels does not include

345. Reverse Vowels of a String【easy】

345. Reverse Vowels of a String[easy] Write a function that takes a string as input and reverse only the vowels of a string. Example 1:Given s = "hello", return "holle". Example 2:Given s = "leetcode", return "leotcede&q

[LeetCode][JavaScript][Python]Reverse Vowels of a String

Reverse Vowels of a String Write a function that takes a string as input and reverse only the vowels of a string. Example 1:Given s = "hello", return "holle". Example 2:Given s = "leetcode", return "leotcede". 将字符串中

LeetCode_345. Reverse Vowels of a String

345. Reverse Vowels of a String Easy 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" N

345. Reverse Vowels of a String(C++)

345. Reverse Vowels of a String Write a function that takes a string as input and reverse only the vowels of a string. Example 1: Given s = "hello", return "holle". Example 2: Given s = "leetcode", return "leotcede"

Reverse Words in a String leetcode java

题目: Given an input string, reverse the string word by word. For example, Given s = "the sky is blue", return "blue is sky the". click to show clarification. Clarification: What constitutes a word? A sequence of non-space characters con

&lt;LeetCode OJ&gt; 345. Reverse Vowels of a String

Total Accepted: 537 Total Submissions: 1488 Difficulty: Easy Write a function that takes a string as input and reverse only the vowels of a string. Example 1: Given s = "hello", return "holle". Example 2: Given s = "leetcode"

【Leetcode】Reverse Vowels of a String

题目链接:https://leetcode.com/problems/reverse-vowels-of-a-string/ 题目: Write a function that takes a string as input and reverse only the vowels of a string. Example 1: Given s = "hello", return "holle". Example 2: Given s = "leetcode

LeetCode 345. Reverse Vowels of a String

Write a function that takes a string as input and reverse only the vowels of a string. Example 1:Given s = "hello", return "holle". Example 2:Given s = "leetcode", return "leotcede". Note:The vowels does not include