2017-09-01 22 views
-3

例えば、入力文字列 "CAXAAYXZA"を指定すると、 'A'で始まり 'X'で終わる4つの部分文字列があります。 「AXAAYX」、「AAYX」、「AYX」の3種類があります。意志、この場合には、実行した後Pythonは、文字で始まり別の文字で始まる部分文字列の数を数えます。

s = 'CAXAAYXZA' 
n = sum(len(re.findall('(A\w{%i}X)' % i, s)) for i in range(len(s))) 

n

+2

[文字 'A' で始まるサブストリングをカウントし、文字 'X' で終わる]の可能な重複(https://stackoverflow.com/questions/21349353/counting-substring-that -begin-with-character-a-and-with-character-x) – LW001

答えて

0
s = "CAXAAYXZA" 
a = numpy.array(list(s)) 
start_indexes= numpy.where(a=='A')[0] 
end_indexes= numpy.where(a=='X')[0] 
print(sum(1 for i in start_indexes for j in end_indexes if i < j)) 

あなたは、これが

0

あなたは正規表現を適用し、それぞれの長さでグループを検索することができませんでしたの方法であります4と等しくなります。又はその拡張形態にある:

n = 0 
for i in range(len(s)): 
    # Increase the total by the groups at i 
    n += len(re.findall('(A\w{%i}X)' % i, s)) 
0
print "DO YOUR ASSIGNMENTS BY YOURSELF" 
string="CAXAAYXZA" 
string_char=list(string) 
string_length=len(string_char) 
print(string_char) 
char_first="A" 
char_second="X" 
for i in range(0,string_length): 
    for b in range(i,string_length): 
     if(string_char[i]==char_first and string_char[b]==char_second): 
      list=[] 
      for z in range(i,b+1): 
       list.append(string_char[z]) 
      print(''.join(list)) 

OUTPUT:

ユアセルフ

して割り当てをDO [ 'C'、 'A'、 'X'、 'A'、「 」、 'Y'、 'X'、 'Z'、 'A']

AX

AXAAYX

AAYX

AYX

+0

これをアップしてください、もしあなたがそれを使っていたら、私はこれについていくつかの時間を無駄にしました。 –

関連する問題