簡體   English   中英

計算所有出現的前綴字符串

[英]Count all the occurrences of the prefix string

找到該位置存在的字母,並確定該位置n之前相同字母的出現次數。

輸入:

長度= 9

字符串=“ abababbsa”

n = 9

輸出:

3

說明:

nth位置9(即a找到字母。 計算該索引為3之前的所有出現次數。

碼:

length = int(input())
string = list(input())
n = int(input())
str1 = string[n-1]
print(string[0:n-1].count(str1))

上面的代碼給出了TLE。 我該如何優化呢?

好吧,如果您使用re(regex)會變得容易

import re
length = int(input())
my_string = input('Enter your string')
n = int(input())
print(len(re.findall(my_string[n-1],my_string[:n-1])))

因此,正在發生的事情是,通過將字符串切成n-1並得到列表的長度(所有出現),我們找到了n之前字符的所有出現。

一種優化方法是照常使用字符串,盡管將其轉換為列表:

string = input()

復雜度現在為O(n),其中n是輸入位置,而在您的情況下,因為字符串已顯式轉換為列表,所以復雜度為O(字符串的長度)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM