gpt4 book ai didi

python - 在字符串中查找字母的时间复杂度是多少?

转载 作者:太空宇宙 更新时间:2023-11-03 20:17:28 24 4
gpt4 key购买 nike

我有一个名为字母数字的字符串,其中包含所有字母和数字。

alphanumeric = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"

我想迭代单个字符的列表(其中一些是字母数字,一些只是标点符号)以找出哪些是字母数字。该行的时间复杂度是多少:

if character in alphanumeric:

是?我不确定字符串是否被视为时间复杂度的列表,因为在查看 Python wiki ( https://wiki.python.org/moin/TimeComplexity ) 时,操作“x in s”被视为 O(N)。

最佳答案

假设你的函数是这样工作的:

FindAlphaNumeric(s:string):string
1. alphanumeric = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"
2. result = ""
3. for each c:character in s
4. if c in alphanumeric then result.append("1") else result.append("0")
5. return result

在本例中,有输入的长度 |s| 和常量字符串的长度 |alphanumeric|。如果您使用线性搜索来搜索 c,则 if c in alphanumeric then 行的时间复杂度为 O(|alphanumeric|)。整个算法的整体复杂度为O(|s|*|alphanumeric|)。但是,由于alphanumeric是一个常量字符串,所以它的长度也是常量,常量可以忽略不计:O(|s|)是时间复杂度。事实上,渐近复杂度作为输入大小的函数并不取决于常量字符串的长度,也不取决于确定成员资格的方式。

关于python - 在字符串中查找字母的时间复杂度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58359428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com