在字符串中找出与给定字符串相同的字符串(find a substring from a string)

import sys

def is_substring(actual_str,pattern_str):
if actual_str is None or pattern_str is None:
print 'empty string'
return
if len(pattern_str)>len(actual_str):
print 'substring pattern is longer than catual string'
return
indexes=[]
for i in range(len(actual_str) - len(pattern_str) + 1):
if pattern_str[0]==actual_str[i] and\
pattern_str[len(pattern_str)-1]==actual_str[i+len(pattern_str)-1]:
indexes.append(i)
if len(indexes)==0:
print 'substring could not be found'
return
mismatch=False
for j in range(len(indexes)):
index=indexes[j]
for k in range(len(pattern_str)):
if(actual_str[index]!=pattern_str[k]):
print "Mismatch : %s - %s"%(actual_str[index], pattern_str[k])
mismatch=True
break
index+=1
if mismatch==True:
mismatch=False
continue
print 'substring found at indexes:',indexes[j]

if __name__=='__main__':
if len(sys.argv)!=3:
is_substring('122234542223212527','222')
else:
is_substring(str(sys.argv(1),str(sys.argv[2])))
substring found at indexes: 1
substring found at indexes: 8
Mismatch : 3 - 2
Mismatch : 1 - 2
Mismatch : 5 - 2
>>>



转载于:https://www.cnblogs.com/wyixin/archive/2011/12/20/2294687.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值