[leetcode]345. Reverse Vowels of a String

来源:互联网 发布:王健林 鲁豫 知乎 编辑:程序博客网 时间:2024/06/05 17:01

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 the letter "y".


双指针:

public class Solution {    public String reverseVowels(String s) {    HashMap<Character, Integer> map=new HashMap<>();    StringBuffer stringBuffer=new StringBuffer();    char[] res=s.toCharArray();    char temp;    map.put('a', 0);    map.put('e', 1);    map.put('i', 2);    map.put('o', 3);    map.put('u', 4);    map.put('A', 0);    map.put('E', 1);    map.put('I', 2);    map.put('O', 3);    map.put('U', 4);    if(s.length()==0){    return "";    }        int left=0;        int right=s.length()-1;        while(left<right){                       if(!map.containsKey(s.charAt(left))){            left++;            }            if(!map.containsKey(s.charAt(right))){            right--;            }            if(map.containsKey(s.charAt(right))&&map.containsKey(s.charAt(left))){            temp=s.charAt(left);            res[left]=res[right];            res[right]=temp;            left++;            right--;            }                    }    for(int i=0;i<res.length;i++){    stringBuffer.append(res[i]);    }        return stringBuffer.toString();    }}


1 0
原创粉丝点击