首先需要写一个reverse函数,把任何输入的字符串完全翻转。然后从前往后依次遍历新字符串,如果遇到空格,就把空格前的字符串用reverse翻转,添加空格,继续遍历。需要注意的是,如果新字符串结尾不是空格,当遍历到结尾的时候,前一个空格到结尾的字符串没有翻转,因此记得跳出遍历后,需要再完成一次翻转操作。'''

输入一个英文句子, 翻转句子中单词的顺序,但单词内字符的顺序不变

为简单起见, 标点符号和普通字母一样处理

'''

# -*- coding:utf-8 -*-

class Solution:

# 按照书上的方法进行编写

# 因为Python的字符串结束没有结束符, 所以需要判断最后的pEnd是否已经指到最后一个字符

# 如果已经指到最后一个字符, 则直接在复制之后跳出循环

# 测试用例'I am a student.'和' '和''

def ReverseSentence(self, s):

if s == None or len(s) <= 0:

return ''

strList = list(s)

strList = self.Reverse(strList)

pBegin = 0

pEnd = 0

resultStr = ''

listTemp = []

while pEnd < len(s):

# 如果字符串长度为1, 直接跳出循环

# 如果pEnd指针指到最后一个字符, 跳出循环

if pEnd == len(s)-1:

listTemp.append(self.Reverse(strList[pBegin:]))

break

# 这个判断语句位置需要靠前, 用来鉴定字符串开头是否是空格的情况

if strList[pBegin] == ' ':

pBegin += 1

pEnd += 1

listTemp.append(' ')

elif strList[pEnd] == ' ':

listTemp.append(self.Reverse(strList[pBegin:pEnd]))

pBegin = pEnd

else:

pEnd += 1

# print(listTemp)

for i in listTemp:

resultStr += ''.join(i)

return resultStr

# 翻转字符list

def Reverse(self, alist):

if alist == None or len(alist) <= 0:

return ''

startIndex = 0

endIndex = len(alist) - 1

while startIndex < endIndex:

alist[startIndex], alist[endIndex] = alist[endIndex], alist[startIndex]

startIndex += 1

endIndex -= 1

return alist

# 直接利用Python的语句进行字符串的翻转

def ReverseSentence2(self, s):

l = s.split(' ')

return ' '.join(l[::-1])

str = 'I am a student.'

s = Solution()

print(s.ReverseSentence2(str))

python翻转函数_Python翻转单词顺序相关推荐

  1. python filter函数_python基础——filter函数

    python基础--filter函数 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函 ...

  2. python not函数_python 函数

    1 为什么使用函数 在没有接触函数时,有时候需要将一个功能多次写,如果需要修改其中一个变量,则需要把所有实现该功能的代码一处一处改.不利于代码维护,代码量大了,组织结构也会很不清晰. 所以总结不使用函 ...

  3. python value函数_python 函数基础

    什么是函数? 函数在Python中是最基本的程序结构,用来最大化地让我们的代码进行复用.简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运行.Python中的函数在其他 ...

  4. python初学函数_Python初学者速收藏!面向Python初学者的知识-函数

    什么是函数式编程? 函数式编程是一种编码范例,其中我们定义要做什么而不是执行什么动作.这个想法最初是从数学中采用的,我们定义输入到函数中的输入以及我们期望从中获得的输出. 函数式编程很少依赖状态管理- ...

  5. python describe函数_Python基础知识点梳理2,推荐收藏

    接着昨天的基础知识点继续梳理,昨天的 Python基础知识梳理1 8.函数 1.定义函数: 使用关键字def来告诉python你要定义一个函数 接着指出函数名:如下面函数名是-greet_user ( ...

  6. python fields函数_Python函数详解

    # ------------------------------------一等函数------------------------------------ # 龟叔: 虽然我把函数定为一等对象,但是 ...

  7. python labels函数_python——函数

    1.函数的创建 函数是可以调用的(可能带有参数,也可能无参),它执行某种行动并且返回一个值.一般来说,内建的callable函数可以用来判断函数是否可调用. 1 >>> import ...

  8. python include函数_python 库函数

    python的内建函数和库函数的区别是什么? [区别]:标准库函数都需要import xxx才能取得.内建函数都在__builtins__里面,在global里直接就能用. [补充]:1.python ...

  9. python islower函数_python字符串是否是小写-python 字符串小写-python islower函数-python islower函数未定义-嗨客网...

    Python字符串是否是小写教程 在开发过程中,有时候我们需要判断一个 Python islower()函数详解 语法 str.islower() -> bool 参数 参数 描述 str 表示 ...

最新文章

  1. 分享一个PyTorch医学图像分割开源库
  2. 斯坦福神经网络神经元对特征提取的影响JS演示
  3. php jquery grid,jQuery Grid
  4. MYSQL免安装版-安装配置过程
  5. WSL——Linux C编程中lockf函数无效
  6. NET 提供了执行异步操作的三种模式
  7. batch、epoch、iteration的区别
  8. 【ruby】ruby学习笔记之--环境搭建
  9. 【白皮书分享】2021年互联网人才招聘白皮书.pdf(附下载链接)
  10. cad墙线打断lisp_autocad 2010怎么打断墙线?
  11. APP安全测试——HOOK技术
  12. MATLAB插值函数interp1
  13. HTML5 drag属性
  14. 生日祝福html_祝我家的猪,生日快乐 | 告白墙第21期
  15. 在数据可视化这条路上,除了天天做图表,还有更重要的3件事
  16. 丙二硫醇/鸟嘌呤(BG)/Mn配合物修饰BODIPY氟化硼二吡咯荧光探针
  17. Python将.nii格式文件转换为.png格式
  18. 37岁被裁,120天没找到工作,无奈去小公司,结果懵了
  19. 第一课 初识计算机ppt,第一课 初识Powerpoint.ppt
  20. 用计算机弹的数字,在计算器上弹两只老虎是用那几个数字

热门文章

  1. JavaScript作用域(scope)
  2. 数据中心服务器冷却技术,数据中心高效液体冷却系统一
  3. CALYPSO 2018 样例点测量圆(相对测量)
  4. 2022-5-19作业——Linux的一些基本操作
  5. 三国志11原版win11成功运行心得
  6. Win10系统如何卸载内置的应用(如人脉,邮件日历,音乐)
  7. C语言字符串函数,内存函数讲解及其模拟
  8. java字符串替换括号(中文和英文括号),通过正则表达式替换,如果直接替换中文可以替换,但是英文替换会报错
  9. golangORM框架gorm详解(超详细)
  10. 证券资产管理公司从业人员信息数据