题解 | #坐标移动#

坐标移动

http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29

Python 3 解题步骤

第 1 步: 建立一个列表,获取输入
input_1 = input()
第 2 步:将用分号 ;分隔开的字符串进行一个切割,并放入一个列表中
               我用的方法是,查找 ; 在最开始 input_1 的字符串中的位置,
               然后将每个分号前的字符串截取出来作为一个新的字符,放入 str_list 中(这里不管这些字符是不是合法,后面再做检验)
               然后更新原来的 str_list 的长度,再循环
str_list = []
while ';' in input_1:
	pot = input_1.find(';',0,len(input_1))
	str_position = input_1[0:pot]
	if len(str_position) == 3: 
		str_list.append(str_position)
	
	input_1 = input_1[(pot+1):]
第 3 步:对 input_1 中的数值进行一个检验,分别累计 A D S W 的值,最后输出
               这里我为了自己检验,把每个 影响了最终坐标的 合法坐标 都输出了 ,就是 print(str_position) 那里,也可以不输出
x = 0
y = 0

for str_position in str_list:
	if str_position[0]== 'A':
		if str_position[1:].isdigit()== True:
			print(str_position)
			x = x -int(str_position[1:])

for str_position in str_list:
	if str_position[0]== 'D':
		if str_position[1:].isdigit()== True:
			print(str_position)
			x = x + int(str_position[1:]) 

for str_position in str_list:
	if str_position[0]== 'W':
		if str_position[1:].isdigit()== True:
			print(str_position)
			y = y + int(str_position[1:])
			
for str_position in str_list:
	if str_position[0]== 'S':
		if str_position[1:].isdigit()== True:
			print(str_position)
			y = y - int(str_position[1:])



original = [x,y]
print(x,',',y)

上面的式子检验了几次,应该问题不大,如果有哪位姐妹发现有 bug 请告知,谢啦!



全部评论

相关推荐

06-02 15:53
阳光学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务