import re
def circlejudge(string):
if string[0]=='{' and string[-1]=='}':
ls=string[1:-1].split(',')
print(ls)
k=0
for s in ls:
pat=re.compile('\([A-Z]->[A-Z]\)')
result = re.findall(pat,s)
if len(result)!=0:
print(result)
k=k+1
if k==len(ls):
dic={}
pat=re.compile('[A-Z]+')
result=re.findall(pat,string)
for i in result:
if i not in dic:
dic.setdefault(i,0)
dic[i]=dic[i]+1
else:
dic[i]=dic[i]+1
i=0
for c, ctn in dic.items():
if ctn%2==0:
i=i+1
if len(dic)==i:
return 1
else:
return 0
else:
return -1
return -1
circlejudge("{(A->B),(B->C),(C->A)}")
使用正则表达式匹配格式,如果格式不正确返回 -1,格式正确不存在回路返回0,存在回路返回1.
本文介绍了一个使用正则表达式进行格式验证的方法,并实现了一个判断给定字符串是否存在回路的算法。该算法首先检查输入字符串的格式是否正确,接着分析字符串中的元素构成的图是否包含回路。

2677

被折叠的 条评论
为什么被折叠?



