题目
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29?tpId=37&tags=&title=&difficulty=0&judgeStatus=0&rp=1&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37
思路
朴素遍历判断字符串是否合法,合法就对x,y进行加或减。
字符串处理的题目。感觉是个简单题,但是它标为中等了。
代码
import sys
# print(ord("0"))
# print(ord("9"))
# 48
# 57
def isdigit(v):
# v: str
# 两位以内
for e in v:
# valid [48,57]
o = ord(e)
if o < 48 or o > 57:
return False
return True
def valid(x_y):
# x_y: str
# [2,3] valid len
if len(x_y) < 2 or len(x_y)>3:
return False
d, v = x_y[0], x_y[1:]
if d not in "ADWS":
return False
if not isdigit(v):
return False
return True
def get_direction_value(x_y):
d = x_y[0]
v = int(x_y[1:])
return d, v
for line in sys.stdin:
a = line.split()[0].split(";")
x, y = 0, 0
for x_y in a:
if not valid(x_y):
continue
d, v = get_direction_value(x_y)
if d == "A":
x -= v
elif d == "D":
x += v
elif d == "W":
y += v
else:
y -= v
print("{},{}".format(x,y))