PYTHON QN: 僅使用一個循環,如何設計算法來計算以字符A
開頭並以字符X
?例如,給定輸入字符串CAXAAYXZA
,有四個子字符串以A
開頭並以X
結束,即:AX
,AXAAYX
,AAYX
和AYX
。計數以字符'A'開始並以字符'X'結尾的子字符串
例如:
>>>count_substring('CAXAAYXZA')
4
PYTHON QN: 僅使用一個循環,如何設計算法來計算以字符A
開頭並以字符X
?例如,給定輸入字符串CAXAAYXZA
,有四個子字符串以A
開頭並以X
結束,即:AX
,AXAAYX
,AAYX
和AYX
。計數以字符'A'開始並以字符'X'結尾的子字符串
例如:
>>>count_substring('CAXAAYXZA')
4
字符串 在 「A」 的第一計數數目然後,使用
Public Function CountCharacter(ByVal value As String, ByVal ch As Char) As Integer
Dim cnt As Integer = 0
For Each c As Char In value
If c = ch Then cnt += 1
Next
Return cnt
End Function
再取每「A字符串
在計數 「X」 「作爲開始位置,」X「作爲結束位置並獲取子字符串。對每個「X」執行此操作,然後從第二個「A」開始並對「X」計數次執行該操作。重複此操作,您將獲得以「A」開始並以「X」結尾的所有子字符串。
這聽起來不像是單循環算法。 – user2357112
我正在使用python – user3234828
既然你沒有指定語言,即時通訊做C++ ISH
int count_substring(string s)
{
int inc = 0;
int substring_count = 0;
for(int i = 0;i < s.length();i++)
{
if(s[i] == 'A') inc++;
if(s[i] == 'X') substring_count += inc;
}
return substring_count;
}
,並在Python
def count_substring(s):
inc = 0
substring_count = 0
for c in s:
if(c == 'A'): inc = inc + 1
if(c == 'X'): substring_count = substring_count + inc
return substring_count
只是另一種解決方案在蟒蛇:
def count_substring(str):
length = len(str) + 1
found = []
for i in xrange(0, length):
for j in xrange(i+1, length):
if str[i] == 'A' and str[j-1] == 'X':
found.append(str[i:j])
return found
string = 'CAXAAYXZA'
print count_substring(string)
輸出:
['AX', 'AXAAYX', 'AAYX', 'AYX']
我可以在代碼中看到2個循環:( – gonephishing
這個問題有什麼問題? –
可能是一個意外編輯;請求恢復到之前的修訂版本。 – waTeim