codeforces A.Extract Numbers

本题我没理解给出的整数提示是什么意思,我做的方法或许比较特别

本题首先是要以  ,  或  ;  分割输入的字符串,然后输出数字一行和非数字一行(注意一下输出格式和空字符的细节就好)

马上出现在我脑子里的是正则表达式

re.split(‘[,;]’,input)

立马解决分割问题

^[1-9][0-9]*$|^0&  匹配1到9开头,后边有0个或多个数字,或者单独的一个0

立马解决第二个问题,以下附上代码

import re
l=re.split('[,;]',input())
#正则表达式  以,和;为分割符
print(l)
ans_int='-'
ans_str='-'
for i in l:
#     print(i)
    if re.match('^[1-9][0-9]*$|^0$', i) != None:
        #匹配以1-9开头的数字,后边可以是[0-9]的任意个数字  或者单个 0
        if ans_int == '-':
            ans_int=i
        else:
            ans_int+=','+i
    elif i !='':
        if ans_str == '-':
            ans_str=i
        else:
            ans_str+=','+i
    elif ans_str=='-':
            ans_str=''
    else:
        ans_str+=','
if ans_int == '-':
    print(ans_int)
else:
    print('"'+ans_int+'"')
if ans_str=='-':
    print(ans_str)
else:
    print('"'+ans_str+'"')

点赞