📌  相关文章
📜  Python|计算给定字符串中频率最高的所有前缀

📅  最后修改于: 2022-05-13 01:54:34.662000             🧑  作者: Mango

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)