📅  最后修改于: 2023-12-03 15:40:54.486000             🧑  作者: Mango
本文介绍一个 Python3 程序,该程序可以实现在恒定时间内查询给定字符串的旋转和第 K 个字符。
s + s
。find()
找到旋转字符串在拼接字符串中的位置,再通过取模来计算出旋转的偏移量。def search_rotation(s: str, K: int) -> str:
n = len(s)
s += s
if n < len(s) // 2:
pos = s.find(s[:n])
i = (K - 1 + pos) % n
return s[i]
else:
return s[K - 1]
s = "hello world"
assert search_rotation(s, 2) == 'e'
assert search_rotation(s, 8) == 'r'
assert search_rotation('orldhello w', 3) == 'r'
本文介绍了一个查询字符串旋转和第 K 个字符的 Python3 程序,该程序的时间复杂度为 $O(1)$,不仅代码简单易懂,还具有一定的实用性。