【剑指offer】面试题42:单词翻转顺序&左右旋转字符串
2014-07-08 15:43
393 查看
这里尽可能的不去用语言本身提供的函数。
将string逆置
这里没有考虑前导空格之类的复杂情况,默认string是非常规整的,单词间由一个空格隔开。
字符串的左右旋转,右旋转我们将字符串后面的n个字符移到最前面。通过参数direction来区别,实参为‘l',’L‘, ’r‘, ’R'.
若觉得单词翻转的实现繁琐,也可以直接用语言本身提供的函数,但是不推荐。
将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])
相关文章推荐
- 剑指Offer_面试题42_翻转单词顺序 VS 左旋转字符串
- 剑指offer之面试题42翻转单词顺序VS左旋转字符串
- 剑指offer 面试题42—翻转单词顺序VS左旋转字符串
- 剑指offer-面试题42:翻转单词顺序VS左旋转字符串
- 【剑指offer】面试题42-翻转单词顺序VS左旋转字符串
- 【剑指Offer学习】【面试题42:翻转单词顺序vs左旋转字符串】
- 剑指offer-面试题42-翻转单词顺序VS左旋转字符串
- 剑指offer 面试题42 翻转单词顺序 VS 左旋转字符串
- 【剑指offer】6.3知识迁移能力——面试题42:翻转单词顺序VS左旋转字符串
- 剑指Offer面试题41和为s的两个数字与和为s的连续正数序列,面试题42翻转单词顺序与左旋转字符串
- [剑指offer][面试题42]翻转单词顺序 VS 左旋转字符串
- 剑指offer 面试题42 翻转单词顺序 | 左旋转字符串
- 剑指Offer面试题42:翻转单词顺序;左旋转字符串 Java实现
- 剑指offer面试题 翻转单词顺序 VS 左旋转字符串
- 剑指Offer面试题:34.翻转单词顺序VS左旋转字符串
- 【剑指offer-Java版】42翻转单词顺序VS左旋转字符串
- 剑指offer 42 - 翻转单词顺序 左旋转字符串
- 剑指offer面试题[42]-反转单词顺序VS左旋转字符串
- 剑指offer42-翻转单词顺序和字符串的左旋转
- 剑指offer42:翻转单词顺序 VS 左旋转字符串(更高效、简便的解法)