(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