Python|计算给定字符串中频率最高的所有前缀
给定一个字符串,打印并计算第一个字母表频率高于第二个字母表的所有前缀。
从用户那里获取两个字母并进行比较。第一个给出的字母表的前缀比第二个字母表的频率更高,打印这样的前缀,否则结果将为 0。
例子 :
Input : string1 = "geek",
alphabet1 = "e", alphabet2 = "k"
Output :
ge
gee
geek
3
Input : string1 = "geek",
alphabet1 = "k", alphabet2 = "e"
Output :
0
方法:取一个空字符串来存储所有形成的前缀的字符串值。然后检查频率高于第二个字母的字母。如果没有找到这样的情况,那么结果将是0个前缀。
下面是实现:
Python3
# Python program to Count all
# prefixes in given string with
# greatest frequency
# Function to print the prefixes
def prefix(string1, alphabet1, alphabet2):
count = 0
non_empty_string = ""
string2 = list(string1)
# Loop for iterating the length of
# the string and print the prefixes
# and the count of query prefixes.
for i in range(0, len(string2)):
non_empty_string = non_empty_string + (string2[i])
if (non_empty_string.count(alphabet1) >
non_empty_string.count(alphabet2)):
# prints all required prefixes
print(non_empty_string)
# increment count
count += 1
# returns count of the
# required prefixes
return(count)
# Driver Code
print(prefix("geeksforgeeks", "e", "g"))
输出 :
gee
geek
geeks
geeksf
geeksfo
geeksfor
geeksforge
geeksforgee
geeksforgeek
geeksforgeeks
10
时间复杂度: O(N),其中 N 是字符串的长度
辅助空间: O(N)