2019-04-08

LeetCode 345. Reverse Vowels of a String.jpg

LeetCode 345. Reverse Vowels of a String

Description

Write a function that takes a string as input and reverse only the vowels of a string.

Example 1:

Input: "hello"
Output: "holle"
Example 2:

Input: "leetcode"
Output: "leotcede"
Note:
The vowels does not include the letter "y".

描述

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

示例 1:

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

输入: "leetcode"
输出: "leotcede"
说明:
元音字母不包含字母"y"。

思路

  • 这道题和上一道题目 344 Reverse String 做法基本一样,只是这里只需要交换原因字母。
  • 找到所有的元音字母索引,第一个索引对应的元素和最后一个索引对应的元素交换,第二个和倒数第二个交换,第三个和倒数第三个交换。
# -*- coding: utf-8 -*-
# @Author:             何睿
# @Create Date:        2019-04-08 22:07:12
# @Last Modified by:   何睿
# @Last Modified time: 2019-04-08 22:07:12


class Solution:
    def reverseVowels(self, s: str) -> str:
        # 所有的元音字母
        vowels = {"a", "e", "i", "o", "u", "A", "E", "I", "O", "U"}
        index = [i for i in range(len(s)) if s[i] in vowels]
        half, count = len(index) // 2, len(index) - 1
        s = list(s)
        # 交换所有的原因字母
        for i in range(half):
            s[index[i]], s[index[count - i]] = s[index[count - i]], s[index[i]]
        return ''.join(s)

源代码文件在 这里
©本文首发于 何睿的博客 ,欢迎转载,转载需保留 文章来源 ,作者信息和本声明.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 认识你之前,我不懂生活,认识你之后,我明白我应该怎样活着。 那天,有一个天使的女孩出现在我面前。你有一双会说话的眼...
    鸣鸥阅读 644评论 9 12
  • 词义 1. 任意连贯性,p3 人其实没有办法准确判断价格,而是根据相对比较来做出判断。 例一,同样一瓶啤酒的价格都...
    猫老妞阅读 2,518评论 1 1
  • 2019年2月17日,星期日,晴。 泓圣地坪千万创业连载,日记星球269号原创日记之0580。 几个街道同...
    cf302fb8f796阅读 430评论 0 1
  • 夏日炎炎,每天气温在三十几度浮动的时候,除了燥热的天气让人烦躁之外,而这样季节对于偏胖的妹子们而言却又是更加苦不堪...
    罂粟花VS彼岸花阅读 724评论 0 1

友情链接更多精彩内容