如何仅使用find和replace查找和统计字符串中所有子字符串的出现次数?

2024-03-29 13:22:28 发布

您现在位置:Python中文网/ 问答频道 /正文

输入值必须较低,最后程序必须打印出现的次数。例如mem。在

smthing = str(input())
if (smthing == smthing.lower()):
    smthing.find(mem)

我完全崩溃了,所以我不能走远。在

我忘了告诉我不能使用计数或列表。在


Tags: 程序列表inputiffind次数memlower
3条回答

像这样的东西怎么样

string = "hello world hello".lower()
replace = "hello".lower()
count = 0

while string.find(replace) != -1:
    string = string.replace(replace, "", 1)
    count += 1

print count
# => Output
# => 2

为了处理重叠的字符串,而不是替换整个子字符串,我们可以只替换单个字符,最好是原始字符串中的第一个replace[0]

^{pr2}$

如果有重叠字符串,则需要一次替换一个字符:

sub = "bob"
smthing = input()
count = 0

for i in iter(lambda: smthing.find(sub), -1):
    smthing = smthing.replace(sub[0], "", 1)
    count += 1
print(count)

所以对于boboobobobobob你将得到6而不是3。在

如果不能使用计数,但可以使用其中一个或另一个,则可以单独使用replace,但这不包括重叠:

^{pr2}$

你不需要;你需要额外的工具,可能只是基本的算术。例如,如果用不同长度的子字符串替换子字符串,则可以将结果的长度与原始字符串进行比较,以计算出现的次数。另一个选择是使用start参数find来查找其他出现的情况。我很想知道您尝试了什么;您展示的代码根本不会产生任何结果。在

相关问题 更多 >