标签:
Two Substrings
题意:问是否存在不重叠的串AB和BA。
思路:注意ABABA、BABAB这两种情况都应该是YES。所以可以找第一个AB,最后一个BA,如果两者不重叠(即两者不是ABA和BAB这样)可以确保一定是YES,同样如果找第一个BA和最后一个AB可以不重叠一样也是YES。
在python中,str的方法s1.find(s2)可以从字符串s1查找s2第一次出现的位置,找不到则返回-1。rfind()是查找最后一次出现位置。
s=raw_input() x1,y1=s.find("AB"),s.rfind("BA") x2,y2=s.find("BA"),s.rfind("AB") if(x1!=-1 and y1!=-1 and x1+1!=y1 and y1+1!=x1 ) or (x2!=-1 and y2!=-1 and x2+1!=y2 and y2+1!=x2): print ‘YES‘ else: print ‘NO‘
Preparing Olympiad
题意:给一些数字,问有多少子集满足它们的和值位于l和r之间,且最大值与最小值的差超过x。
思路:枚举子集判断即可。
在python中,list(itertools.combinations(a,i))表示在a中枚举长度为i的所有子集。
import itertools n,l,r,x=[int(i) for i in raw_input().split()] a=[int(i) for i in raw_input().split()] ans=0 for i in range(1,n+1): sub=list(itertools.combinations(a,i)) for j in sub: s,d=sum(j),max(j)-min(j) if l<=s and s<=r and d>=x: ans+=1 print ans
Codeforces Round #306 (Div. 2)
标签:
原文地址:http://www.cnblogs.com/rockzh/p/4556230.html