leetcode 345. Reverse Vowels of a String 解题报告

来源:互联网 发布:王柳雯的淘宝店 编辑:程序博客网 时间:2024/05/16 01:53

原题链接

解题思路

  1. 首先将元音存储在一个list中,方便判断。(包括大小写)
  2. 遍历原字符串将里面的元音记录到StringBuilder中,并反转
  3. 遍历原字符串,将反转后的StringBuilder里的char写入char数组中
  4. 将char数组转化为String返回

解题代码

public class Solution {    public String reverseVowels(String s) {        List<Character> list = new ArrayList<Character>();        list.add('a');list.add('o');list.add('e');list.add('i');list.add('u');        list.add('A');list.add('O');list.add('E');list.add('I');list.add('U');        StringBuilder sb = new StringBuilder();        char[] cs= s.toCharArray();        for(int i=0;i<cs.length;i++){            if(list.contains(cs[i])){                sb.append(cs[i]);            }        }        sb.reverse();        int k = 0;        for(int i=0;i<cs.length;i++){            if(list.contains(cs[i])){                cs[i] = sb.charAt(k++);            }        }        return new String(cs);    }}
0 0