使用内置的Python字符串方法inputstring.count(x)
的空间复杂度是多少?
例如:import Foundation
protocol SimDelegate:class {
func change()
}
。
答案 0 :(得分:2)
str.count
的CPython代码在PyUnicode_Count
中。在现代版本的Python中,这会根据haystrack字符串的存储方式分派到asciilib_count
,ucs1lib_count
,ucs2lib_count
或ucs4lib_count
中的一个,但最终它们全部下降到通用的STRINGLIB(count)
代码,该代码只需调用FASTSEARCH
。
如果您查看最后一个源文件的顶部,则:
/* fast search/count implementation, based on a mix between boyer-
moore and horspool, with a few more bells and whistles on the top.
for some more background, see: http://effbot.org/zone/stringlib.htm */
对于单字符的针,基本上只是在做strchr
。对于非微小的针,确实暗示要建立一个Boyer-Moore三角表,其中包括一个布隆过滤器和一些与针的大小成线性比例的东西,以及一些其他不变的东西。但是,没有任何东西与干草堆的大小成正比。
因此,您称该常数还是线性常数取决于您将针的尺寸视为输入还是常数。