【剑指offer】面试题42:单词翻转顺序&左右旋转字符串
2024-09-30 13:45:54
这里尽可能的不去用语言本身提供的函数。
将string逆置
def reverse(string):
#return string[::-1]
reversedStr = ''
for i in xrange(len(string) - 1, -1, -1):
reversedStr += string[i]
return reversedStr
单词的翻转
def reverseWords(string):
if len( string ) <= 1: return
split = ' '
reversedStr = ''
word = ''
# reverse every word in string
for c in string:
if c == split:
word = reverse(word) + split
reversedStr += word
word = ''
else:
word += c
# the last word
reversedStr += reverse(word)
# reverse the whole string
reversedStr = reverse(reversedStr)
return reversedStr
这里没有考虑前导空格之类的复杂情况,默认string是很规整的,单词间由一个空格隔开。
字符串的左右旋转。右旋转我们将字符串后面的n个字符移到最前面。通过參数direction来差别,实參为‘l',’L‘, ’r‘, ’R'.
'''
@ if direction = 'l' or 'L', move n items from front to end
@ if direction = 'r' or 'R', move n items from back to front
'''
def RotateString(string, n, direction):
if n >= len(string) or n <= 0:
return string
reversedStr = ''
leftpart = ''
rightpart = ''
# move last n chiracter to front
if direction == 'r' or direction == 'R':
n = len(string) - n
for i in range(n):
leftpart += string[i]
for i in range(n, len(string)):
rightpart += string[i]
reversedStr += reverse(leftpart)
reversedStr += reverse(rightpart)
reversedStr = reverse(reversedStr)
return reversedStr
若认为单词翻转的实现繁琐。也能够直接用语言本身提供的函数。可是不推荐。
def reverseWords(string):
return ' '.join(string.split()[::-1])
最新文章
- SQL2008完全卸载详解(图解)
- Android应用开发SharedPreferences存储数据的使用方法
- Linux分析日志获取最多访问的前10个IP
- .net开发笔记(十八) winform中的等待框
- gulp插件gulp-usemin简单使用
- wpf 任务栏闪烁
- 伪多项式时间算法Pseudo-polynomial Algorithms-----geeksforGeek 翻译
- TestPointer
- HTML--3css样式表
- SRM 514 DIV1 500pt(DP)
- DatabaseMetaData的用法【转载】
- jar包版本冲突,并且要保留两个版本都能使用
- PHP中include和require的区别
- POJ 1955 Rubik&#39;s Cube
- ASUS T100TA 换屏要记
- 演进之美,越来越美:三分钟看尽 iOS 1 ~ iOS 8 的进化史
- Web前端学习第二天(cookie 一)
- 处理html内容,获取纯文本
- 懒得说IE6了,写个js插件不能写注释,原因如下
- /etc/profile不生效问题
热门文章
- 分享下自己的EmpireofCode进攻策略 https://empireofcode.com/ https://empireofcode.com/game/#
- python基础——3(流程控制)
- 大数据学习——实现多agent的串联,收集数据到HDFS中
- 实现List集合中数据逆序排列
- struts2接受请求参数
- python003 Python3 基本数据类型
- CentOS 中 YUM 安装桌面环境
- squid重定向(python 代码)
- BZOJ 3039: 玉蟾宫【dp】
- SPOJ VJudge QTREE - Query on a tree