zoukankan      html  css  js  c++  java
  • LeetCode 345. Reverse Vowels of a String 题解

    Total Accepted: 20180 Total Submissions: 57018 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", return "leotcede".

    public class Solution {
        public boolean isVowel(char c) {  //这个方法效率远高于 List.contains()方法,去看contains源码
            if('A' <= c && c <= 'Z') c += 'a'-'A';  
            return c=='a' || c=='e' || c=='i' || c=='o' || c=='u';  
        }
        
        public String reverseVowels(String s) {
          
            char[] charArray = s.toCharArray();
            // List<Character> vowels = Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U');
            int i = 0, j = charArray.length - 1;
            while (i < j){
    
                while( i<j && !isVowel( charArray[i]) ) {
                    i++;
                }
                
                while( i<j && !isVowel( charArray[j]) ) {
                    j--;
                }
               
                char temp = charArray[i]; 
                charArray[i] = charArray[j];
                charArray[j] = temp;
                i++;
                j--;
    
            }
            
            return String.valueOf(charArray);
        }
    }
    
  • 相关阅读:
    输出流对象
    1.2最简单的c++程序
    c++的初步认识
    理想程序员
    从字符数组中删除字符
    打印杨辉三角
    旋转数组
    找出1000以内的所有完数
    计算兔子的总数
    101-200有多少个素数?
  • 原文地址:https://www.cnblogs.com/liveandlearn/p/5583372.html
Copyright © 2011-2022 走看看