-2

文字列内の特定の部分文字列と、文字列内のその位置を見つける必要があります。これは非常に簡単ですが、Python の組み込み関数やメソッドを使用せずにこれを行う必要があります。誰かが助けてくれれば本当にありがたいです。ありがとう

string="ACAAGATGCCATTGTCCCCCGGCCTCCTGCTGCTGCTGCTCTCCGGGGCCACGGCCACCGCTGCCCTGCCCCTGGAGGGTGGCCCCACCGGCCGAGACAGCGAGCATATGCAGGAAGCGGCAGGAATAAGGAAAAGCAGCCTCCTGACTTTCCTCGCTTGGTGGTTTGAGTGGACCTCCCAGGCCAGTGCCGGGCCCCTCATAGGAGAGGAAGCTCGGGAGGTGGCCAGGCGGCAGGAAGGCGCACCCCCCCAGCAATCCGCGCGCCGGGACAGAATGCCCTGCAGGAACTTCTTCTGGAAGACCTTCTCCTCCTGCAAATAAAACCTCACCCATGAATGCTCACGCAAGTTTAATTACAGACCTGAA"

部分文字列='ttg'

4

3 に答える 3

1

このコードは、組み込み関数を使用したくない場合に機能します。

man = "ACAAGATGCCATTGTCCCCCGGCCTCCTGCTGCTGCTGCTCTCCGGGGCCACGGCCACCGCTGCCCTGCCCC$
check = "TTG"

for i in range (0, len(man)):
    if man[i]==check[0]:
            sum =0
            for j in range(0, len(check)):
                    if man[i+j] != check[j]:
                            break
                            sum = 0
                    else:
                            sum = sum +1
                            if sum == len(check):
                                print i
于 2013-04-04T23:37:48.960 に答える
0

lenまたはenumerate現在のインデックスの知識を反復する必要があるため、組み込みなしでこれを実装するのは困難です。

ただし、ここでは実装lenのみを示します。

def find(s, sub):
    idx = 0
    while idx < len(s):
        if s[i:len(sub)] == sub:
            return idx
    return -1

ビルトインがまったく必要ない場合は、次のトリックを使用できます。

def find(s, sub):
    sub_len = 0
    for _ in sub:
        sub_len += 1

    idx = 0
    while s[idx:idx+1]:
        if s[i:sub_len] == sub:
            return idx
    return -1

もちろん、反復とスライスは多くのビルトインよりも多くのことを行うため、これは多少の不正行為です。

于 2018-09-04T22:59:33.417 に答える