题解 | #坐标移动#正则方法
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
package main
import (
"bufio"
"fmt"
"os"
"regexp"
"strconv"
"strings"
)
func main() {
// 接收书入字符串并划分成数组
scan:=bufio.NewScanner(os.Stdin)
scan.Scan()
inputarr:=strings.Split(scan.Text(), ";")
// fmt.Println(inputarr[len(inputarr)-1]=="")
// 创建x,y两个坐标
x,y:=0,0
// 对数组进行处理
for _,v:=range inputarr{
// 值为空字符的话直接跳过
if v==""{
continue
}
//首先判断数组是否符合规则,我这里使用的是正则
if flag, _ := regexp.MatchString(`^(A|W|S|D)[1-99]`, v);flag{
// 当正则通过再进行坐标处理
// 把对应的数字拿出来
res,_:=strconv.Atoi(v[1:])
switch v[0]{
case 'A':
x-=res
case 'D':
x+=res
case 'W':
y+=res
case 'S':
y-=res
}
}
}
fmt.Printf("%d,%d",x,y)
}
