美文网首页
15.LeetCode刷题For Swift·345.反转字符串

15.LeetCode刷题For Swift·345.反转字符串

作者: 富城 | 来源:发表于2021-01-01 23:10 被阅读0次

    1、原题

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

    示例 1:

    输入:"hello"
    输出:"holle"
    示例 2:

    输入:"leetcode"
    输出:"leotcede"

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/reverse-vowels-of-a-string

    2、思路

    3、代码

    // Swift
    class Solution {
        func reverseVowels(_ s: String) -> String {
            // 字符串转数组
            var strArr = Array(s)
            // 元音
            let vowels: Set<Character> = ["a", "A", "e", "E", "i", "I", "o", "O", "u", "U"]
            // 定义双指针
            var i = 0
            var j = strArr.count - 1
            while i < j {
                if !vowels.contains(strArr[i]) {
                    i += 1
                    continue
                }
                if !vowels.contains(strArr[j]) {
                    j -= 1
                    continue
                }
                // 交换数组的两个值
                strArr.swapAt(i, j)
                i += 1
                j -= 1
            }
            return String(strArr)
        }
    }
    
    // C++
    class Solution {
    public:
        string reverseVowels(string s) {
            //使用双指针
            int i = 0;
            int j = s.length() - 1;
            while (i < j)
            {
                if (!isOrNot(s[i])) {
                    i ++;
                    continue;
                }
                if (!isOrNot(s[j])) {
                    j --;
                    continue;
                }
                swap(s[i++], s[j--]);
            }
            return s;        
        }
        bool isOrNot(char c) {
            return (c == 'a' || c == 'A' ||
                    c == 'e' || c == 'E' ||
                    c == 'i' || c == 'I' ||
                    c == 'o' || c == 'O' ||
                    c == 'u' || c == 'U');
        }
    };
    

    相关文章

      网友评论

          本文标题:15.LeetCode刷题For Swift·345.反转字符串

          本文链接:https://www.haomeiwen.com/subject/gwwanktx.html