zoukankan      html  css  js  c++  java
  • 反转字符串&反转字符串中的元音字母

    解题思路
    因为在 Python 中字符串是不可变,因此遍历字符串交换每个单词内字符位置的方法不太可行,但是利用 Python 切片的便利,可以写出更优雅的实现方式。

    1、常规思路

    将字符串分割成单词列表 然后把每个单词反转切片

    使用for循环遍历

    class Solution:
        def reverseWords(self, s: str) -> str:
            return " ".join(word[::-1] for word in s.split(" "))
    

     

    class Solution:
        def reverseWords(self, s: str) -> str:
            # 先反转单词列表,再反转字符串
            return " ".join(s.split(" ")[::-1])[::-1]
    

    class Solution(object):
        def reverseWords(self, s):
             return " ".join(s[::-1].split(" ")[::-1])
    

      

     

     思路一:

    class Solution:
        def reverseWords(self, s: str) -> str:
            s = s.strip()
            # 反转整个字符串
            s_arr = s[::-1].split(" ")
            s_reverse = []
            for word in s_arr:
                if word != '':
                    s_reverse.append(word[::-1])
            return " ".join(s_reverse)
    

    思路二:

    class Solution:
        def reverseWords(self, s: str) -> str:
           return " ".join(reversed(s.split()))
    

      

     

     双指针解法:

    class Solution:
        def reverseVowels(self, s: str) -> str:
            vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}
            left = 0
            right = len(s) - 1
            # str类型数据无法直接查询in和not in, 需要转换成list类型
            s_lyst = list(s)
            print(s_lyst)
            while left < right:
                if s_lyst[left] in vowels and s_lyst[right] in vowels:
                    # 交换位置
                    s_lyst[left], s_lyst[right] = s_lyst[right], s_lyst[left]
                    left += 1
                    right -= 1
                if s_lyst[left] not in vowels:
                    left += 1
                if s_lyst[right] not in vowels:
                    right -= 1
    
            return ("").join(s_lyst)
    

      

  • 相关阅读:
    检测用户名和密码
    文本框赋值-数组的使用
    表单元素属性应用
    innerText和textContent区别以及兼容处理
    1.1自动化测试
    coockie & session
    springMVC 实现上传文件和下载文件
    el 表达式 显示错误 总结
    杭电oj_2063——过山车(java实现)
    关于java静态存储类的一个知识点
  • 原文地址:https://www.cnblogs.com/GumpYan/p/13029820.html
Copyright © 2011-2022 走看看