python在处理字符串的时候有很多快捷的方式:
比如我们在比较两个长度相同的字符串时,我们可以有多种算法,比如把一个字符串拆成一个列表(或者一个单词);
> a='asdfasdfasdfasdf' >>> list(a) ['a', 's', 'd', 'f', 'a', 's', 'd', 'f', 'a', 's', 'd', 'f', 'a', 's', 'd', 'f'] >>> list(a) ['a', 's', 'd', 'f', 'a', 's', 'd', 'f', 'a', 's', 'd', 'f', 'a', 's', 'd', 'f'] >>>
然后比较两个列表是否是相互属于对方,
第二中方法是:将这些字符串按照字母表顺序排列,比较两个单词是否相同!
这个是acm的一道题:做的有问题,先发上来以后再改:
import string def shuru(): c=1 a=[] i=0 while(c): f=raw_input() if f=='XXXX': c=0 else: a.append(f) print a return a def shuchu(): b=[] c=1 while(c): g=raw_input() if g=='XXXX': c=0 else: b.append(g) print b return b def bijiao(a,b): m=1 aa=0 bb=0 aaa=len(a)-1 bbb=len(b)-1 while(m): u=False for i in range(0,len(b)): aa=aa+1 if u==False and i>=1: print 'NOT A VALID WORD' print '******' for j in range(0,len(a)-1): bb=bb+1 f=list(a[j]) g=list(b[i]) c=len(f) d=len(g) if c==d: if set(g).issubset(set(f)) : print b[i] print '******' u=True if aa==len(b): m=0 if __name__=='__main__': a=shuru() b=shuchu() bijiao(a,b)