擅长:python、mysql、java
<pre><code>def bruteMatch(n,m):
for i in range(0,len(n)-len(m)+1):
if n[i:len(m)+i]==m:
return(i)
</code></pre>
<ol>
<li><p><code>for i in range(0,len(n)-len(m)+1)</code>将循环<code>len(n)-len(m)+1</code>次</p></li>
<li><p><code>if n[i:len(m)+i]==m</code>将n<code>from i to len(m)+i</code>中的所有字符与m</p></li>
</ol>
<p><strong>例1</strong></p>
^{pr2}$
<p><strong>例2</strong></p>
^{3}$
<p><3>示例</strong></p>
<pre><code>n = "Hello"
m = "Hi"
len(n)-len(m)+1 = 4-2+1 = 3
range(0,3)
i=0
if n[0:2+0] == m ~ n[0:2] == m[:] ~ "He" == "Hi"
FALSE
i=1
if n[1:2+1] == m ~ n[0:3] == m[:] ~ "Hel" == "Hi"
FALSE
i=2
if n[2:2+2] == m ~ n[0:4] == m[:] ~ "Hell" == "Hi"
FALSE
</code></pre>
<p><strong>结论</strong></p>
<p>您的代码将比较<code>n[0:z]</code>与<code>z</code>在<code>(0, len(n)+1)</code>范围内的<code>len(n)-len(m)+1</code>次:</p>
<pre><code>If len(n) == len(m) then check n == m
Else if len(n) > len(n) then return check m is in [ n[0:len(m)], .., n[0:len(n)] ]
Else if len(n) < len(m) then Error: Invalid range
</code></pre>