python代码 程序员编程艺术 1.1
浏览数:31 /
时间:2015年06月08日
《程序员编程艺术:面试和算法心得》http://taop.marchtea.com/
1.1 旋转字符串
1: def simpleShift(str, n):
2: tmpStr = str[n:] + str[:n]
3: return tmpStr
4:
5: def LeftShiftOne(str):
6: char = str[0]
7:
8: tmpStr = ‘‘
9: for i in range(1, len(str)):
10: tmpStr += str[i]
11: tmpStr += char
12:
13: return tmpStr
14:
15: def LeftRotateString(str, n):
16: for i in range(n):
17: str = LeftShiftOne(str)
18: return str
19:
20: def ReverseString(str):
21: l = len(str)
22: for i in range(l/2):
23: char = str[i]
24: # reversed + right + to be reversed + left + reversed
25: str = str[:i ] + str[l - i - 1] + str[i + 1: l - i - 1] + char + str[l - i:]
26: return str
27:
28: def ReverseWords(str):
29: words = str.split()
30: l = len(words)
31: for i in range(l/2):
32: word = words[i]
33: words[i] = words[l - i - 1]
34: words[l - i - 1] = word
35:
36: str = ‘‘
37: for word in words:
38: str += word + ‘ ‘
39: return str
40:
41: def main():
42: s = ‘abcdefg‘
43: n = 3
44:
45: print ‘1. Simple shift‘
46: str = simpleShift(s, n)
47: print str
48:
49: print ‘2. Left rotate string‘
50: str = LeftRotateString(s, n)
51: print str
52:
53: print ‘3. reverse string‘
54: str = ReverseString(s[:n])
55: str = str + ReverseString(s[n:])
56: str = ReverseString(str)
57: print str
58:
59: print ‘4. reverse words‘
60: s = ‘I am a student.‘
61: str = ReverseWords(s)
62: print str
63:
64: if __name__ == ‘__main__‘:
65: main()