• LeetCode-345-反转字符串中的元音字母


    反转字符串中的元音字母

    题目描述:编写一个函数,以字符串作为输入,反转该字符串中的元音字母。

    示例说明请见LeetCode官网。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/reverse-vowels-of-a-string/
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    解法一:栈倒序
    • 首先初始化元音字母列表vowels;

    • 然后循环判断s中的每一个字符,将元音字母依次放入栈中;

    • 然后再循环s一遍,将出现的元音字母用栈顶元素出栈后替换;

    • 循环处理完成后即是反转后的字符串。

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Stack;
    
    public class LeetCode_345 {
        /**
         * 元音字母列表
         */
        private static List<Character> vowels = new ArrayList<>();
    
        static {
            // 初始化所有的元音字母
            vowels.add('a');
            vowels.add('e');
            vowels.add('i');
            vowels.add('o');
            vowels.add('u');
            vowels.add('A');
            vowels.add('E');
            vowels.add('I');
            vowels.add('O');
            vowels.add('U');
        }
    
        public static String reverseVowels(String s) {
            if (s == null || s.length() < 2) {
                return s;
            }
    
            char[] sList = s.toCharArray();
            Stack<Character> vowelStack = new Stack<>();
            for (char c : sList) {
                if (vowels.contains(c)) {
                    // 将元音字母放入栈中
                    vowelStack.push(c);
                }
            }
            for (int i = 0; i < sList.length; i++) {
                if (vowels.contains(sList[i])) {
                    // 将元音字母从栈中取出,倒序取出
                    sList[i] = vowelStack.pop();
                }
            }
            return new String(sList);
        }
    
        public static void main(String[] args) {
            System.out.println(reverseVowels("hello"));
        }
    }
    

    【每日寄语】 无论别人怎么看,我绝不打断自己节奏,喜欢的事情自然可以坚持。

  • 相关阅读:
    重新安装AD RMS
    Exp00009错误解決
    AD RMS 问题解决 事件ID:139
    如何破解微软的正版增值烦恼
    如何批量更改帐号的属性
    ORA31694,原来是文件有问题
    Standby异常解决
    ASP.NET 常用网站
    .NET C#读取Excel内容
    AD Usre lastLogon Time
  • 原文地址:https://www.cnblogs.com/kaesar/p/15316006.html
Copyright © 2020-2023  润新知