3.reverseVowels

    技术2023-09-01  93

    忘记是自然选择,重要的是抽取学习方法

    双指针 --反转string中的元音字母(easy) leecode 输入:“leetcode”,输出: return “leotcede”思路:双指针分别指向数组的首位,如果元音的话就在新字符数组原位置保存,指针后移.如果都为元音的话则互换位置,并指针后移 private final static HashSet<Character> vowels = new HashSet<>( Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U')); public String reverseVowels(String s){ HashSet<Character> vowels = new HashSet<>( Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U')); if (s == null) { return null; } int i = 0, j = s.length() - 1; char[] result = new char[s.length()]; while (i <= j) { char ci = s.charAt(i); char cj = s.charAt(j); if(!vowels.contains(ci)){ result[i++] = ci; }else if (!vowels.contains(cj)){ result[j--] = cj; }else { result[i++] = cj; result[j--] = ci; } } return new String(result); } 费曼学习法:走一遍早上leetcode自己过一遍
    Processed: 0.010, SQL: 9