当前位置:   article > 正文

华为机考入门python3--(17)牛客17- 坐标移动_华为机考可以用python3么

华为机考可以用python3么

分类:字符串

知识点:

  1. 正则匹配       re.match(pattern, move)

  2. 格式字符串,可以在字符串中直接引用变量    f"{x},{y}"

题目来自【牛客】

图片

  1. import re
  2. def is_valid_coordinate(move):
  3. # 使用正则表达式验证移动是否合法
  4. # ^: 表示字符串的开始。
  5. # [ADWS]: 匹配一个字符,该字符必须是 A、D、W 或 S 中的一个。
  6. # [0-9]{1,2}: 匹配 1 到 2 个数字。[0-9] 表示匹配任意一个数字,{1,2} 表示前面的数字可以重复 1 到 2 次。
  7. # $: 表示字符串的结束。
  8. pattern = r'^[ADWS][0-9]{1,2}$'
  9. # 返回匹配则返回<re.Match object; span=(0, 3), match='A12'>
  10. # 没有则返回None
  11. return re.match(pattern, move) is not None
  12. def calculate_coordinates(input_string):
  13. # 初始化坐标为原点
  14. x, y = 0, 0
  15. # 遍历输入字符串中的每个字符
  16. moves = input_string.split(';')
  17. for move in moves:
  18. # 检查移动是否有效
  19. if is_valid_coordinate(move):
  20. # 获取移动方向和距离
  21. direction = move[0]
  22. distance = int(move[1:]) # 距离为输入字符串的剩余部分,不需要额外验证
  23. # 根据方向移动对应的距离
  24. if direction == 'A': # 向左移动
  25. x -= distance
  26. elif direction == 'D': # 向右移动
  27. x += distance
  28. elif direction == 'W': # 向上移动
  29. y += distance
  30. elif direction == 'S': # 向下移动
  31. y -= distance
  32. else:
  33. # 如果移动无效,忽略它
  34. pass
  35. return f"{x},{y}" # 返回最终的坐标,格式化为字符串
  36. # input_string = "A10;S20;W10;D30;X;A1A;B10A11;;A10;"
  37. input_string = input().strip()
  38. output_string = calculate_coordinates(input_string)
  39. print(output_string) # 输出:10, -10
'
运行

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/901624
推荐阅读
相关标签
  

闽ICP备14008679号