zoukankan      html  css  js  c++  java
  • Python实现字符串反转的方法

    第一种:使用字符串切片

    >>> s = "python"
    >>> s[::-1]
    'nohtyp'
    >>> 

    第二种:使用列表的reverse方法

    >>> s = "python"
    >>> lst = list(s)
    >>> lst.reverse()
    >>> "".join(lst)
    'nohtyp'
    >>> 

    手写 reverse

    >>> def reverseString(s:str) -> str:
    	lst = list(s)
    	i, j = 0, len(s)-1
    	while i < j:
    		lst[i], lst[j] = lst[j], lst[i]
    		i , j = i + 1, j - 1
    	return "".join(lst)
    
    >>> s = 'python'
    >>> reverseString(s)
    'nohtyp'
    >>> 

    第三种:使用reduce

    >>> from functools import reduce  # Python3 中不可以直接调用reduce
    >>> s = "python"
    >>> reduce(lambda x, y: y+x, s)
    'nohtyp'
    >>> 

    reduce 函数帮助:

    >>> help(reduce)
    Help on built-in function reduce in module _functools:
    
    reduce(...)
        reduce(function, sequence[, initial]) -> value
        
        Apply a function of two arguments cumulatively to the items of a sequence,
        from left to right, so as to reduce the sequence to a single value.
        For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates
        ((((1+2)+3)+4)+5).  If initial is present, it is placed before the items
        of the sequence in the calculation, and serves as a default when the
        sequence is empty.
    
    >>> 

    第四种:使用递归函数

    >>> def reverse(s):
    	if s == "":
    		return s
    	else:
    		return reverse(s[1:]) + s[0]
    
    	
    >>> reverse('python')
    'nohtyp'
    >>> 

    python中默认的最大递归数:

    >>> import sys
    >>> sys.getrecursionlimit()
    1000
    >>> 

    第五种:使用栈

    >>> def rev(s):
    	lst = list(s) # 转换成list
    	ret = ""
    	while len(lst):
    		ret += lst.pop() # 每次弹出最后的元素
    	return ret
    
    >>> s = 'python'
    >>> rev(s)
    'nohtyp'
    >>> 

    第六种:for循环

    >>> def rever(s):
    	ret = ""
    	for i in range(len(s)-1, 0, -1):
    		ret += s[i]
    	return ret
    
    >>> s = "python"
    >>> rev(s)
    'nohtyp'
    >>> 
    

      

  • 相关阅读:
    51nod乘积之和
    Dell服务器安装OpenManage(OMSA)
    Nginx反向代理PHP
    搭建haproxy
    108. Convert Sorted Array to Binary Search Tree
    60. Permutation Sequence
    142. Linked List Cycle II
    129. Sum Root to Leaf Numbers
    118. Pascal's Triangle
    26. Remove Duplicates from Sorted Array
  • 原文地址:https://www.cnblogs.com/51try-again/p/11148515.html
Copyright © 2011-2022 走看看