首页 > 解决方案 > 如何修复适用于所有情况的功能?

问题描述

这个函数应该是用'-'分隔字符串,但它只适用于字符串有两个相同字母的情况,所以当字符串有更多相同的字母时 - 它不起作用

def seperating(s: string): 
    for i in range(len(s)):
        if s[i] == s[i + 1]:
            return s[:i + 1] + '-' + s[i + 1:]


if __name__ == '__main__':
    print(seperating("   aa   "))  # - - a-a - -     it doesn't work
    print(seperating("Hello"))  # Hel-lo   it works

标签: pythonstring

解决方案


第一次遇到两个相等的字符后,您将从函数返回。与其返回值,不如将其保存在一个新字符串中,例如:

def seperating(s: string):
    ret_string = ""
    for i in range(len(s) - 1):
        ret_string += s[i]
        if s[i] == s[i + 1]:
            ret_string += '-'
    ret_string += s[len(s) - 1]
    return ret_string

推荐阅读