zoukankan      html  css  js  c++  java
  • 【剑指offer】面试题42:单词翻转顺序&左右旋转字符串

    这里尽可能的不去用语言本身提供的函数。

    将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])



查看全文
  • 相关阅读:
    XMPP框架下微信项目总结(5)花名册获取(好友列表)
    XMPP框架下微信项目总结(4)重新连接服务器
    XMPP框架下微信项目总结(3)获取点子名片信息(个人资料)更新电子名片
    XMPP框架下微信项目总结(2)授权登陆/注销/注册/打印日志
    XMPP框架下微信项目总结(1)环境配置
    比较 http连接 vs socket连接
    js判断变量是否为undefined
    sql查询优化的方法
    Jquery学习之插件开发
    Jquery学习之Jquery插件
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10659066.html
  • Copyright © 2011-2022 走看看