python - 如何修复适用于所有情况的功能?
问题描述
这个函数应该是用'-'分隔字符串,但它只适用于字符串有两个相同字母的情况,所以当字符串有更多相同的字母时 - 它不起作用
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
解决方案
第一次遇到两个相等的字符后,您将从函数返回。与其返回值,不如将其保存在一个新字符串中,例如:
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
推荐阅读
- java - 借助泛型和反射的 Java di 模块
- datetime - 错误的程序员相信时间
- scala - scalatest intercept vs a[Exception] should be thrownBy
- java - LinkedHashMap 大小不变
- thymeleaf - Remove trailing zeros on currency
- c# - Azure - authenticating to KeyVault using Service Principle returns an Unauthorized exception
- ios - UITableView-upon scrolling it loses properties associated with selected cells. How to save these properties? - swift
- arrays - sorting an array where the second property may be nonexistent
- php - 带有 IntelliJ / PhpStorm 的通用 PHPDoc?
- r - 用 ggplot2 绘制圆的线段