Discuss / Python / 我的答案,请大家指教。

我的答案,请大家指教。

Topic source

冯征sh

#1 Created at ... [Delete] [Delete and Lock User]

# 思路是循环从左边去除空格,然后循环从右边去除空格。

# 运算效率比递归高一些,从左边循环删除空格后,再从右边循环删除空格。

# 循环过程中不是空格立即退出循环。

def trim(s):    while length := len(s) >= 1:  # 海象运算符,测量字符串长度,>=1才循环        if s[:1] == ' ':  # 从左边判断是不是空格            s = s[1:]  # 去除左边的空格            length = len(s)  # 长度重新计算        else:  # 最左边判断不是空格的退出循环            break    while length := len(s) >= 1:  # 海象运算符,测量字符串长度,>=1才循环        if s[-1] == ' ':  # 从右边判断是不是空格的去除            s = s[:-1]  # 去除左边的空格            length = len(s)  # 长度重新计算        else:  # 最右边判断不是空格的退出循环            break    return s

冯征sh

#2 Created at ... [Delete] [Delete and Lock User]
def trim(s):    while length := len(s) >= 1:        if s[:1] == ' ':            s = s[1:]            length = len(s)        else:            break    while length := len(s) >= 1:        if s[-1] == ' ':            s = s[:-1]            length = len(s)        else:            break    return s

冯征sh

#3 Created at ... [Delete] [Delete and Lock User]
def trim(s):    while length := len(s) >= 1:        if s[:1] == ' ':            s = s[1:]            length = len(s)        else:            break    while length := len(s) >= 1:        if s[-1] == ' ':            s = s[:-1]            length = len(s)        else:            break    return s

冯征sh

#4 Created at ... [Delete] [Delete and Lock User]

def trim(s):

    while length := len(s) >= 1:

        if s[:1] == ' ':

            s = s[1:]

            length = len(s)

        else:

            break

    while length := len(s) >= 1:

        if s[-1] == ' ':

            s = s[:-1]

            length = len(s)

        else:

            break

    return s

冯征sh

#5 Created at ... [Delete] [Delete and Lock User]

def trim(s):

    while length := len(s) >= 1:  # 海象运算符,测量字符串长度,>=1才循环

        if s[:1] == ' ':  # 从左边判断是不是空格

            s = s[1:]  # 去除左边的空格

            length = len(s)  # 长度重新计算

        else:  # 最左边判断不是空格的退出循环

            break

    while length := len(s) >= 1:  # 海象运算符,测量字符串长度,>=1才循环

        if s[-1] == ' ':  # 从右边判断是不是空格的去除

            s = s[:-1]  # 去除左边的空格

            length = len(s)  # 长度重新计算

        else:  # 最右边判断不是空格的退出循环

            break

    return s

冯征sh

#6 Created at ... [Delete] [Delete and Lock User]

补充一下,python递归有996层级限制,最好别用递归解。

递归虽然简洁,但是运算效率低。

优先考虑循环解。


  • 1

Reply