题解 | #坐标移动#

坐标移动

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

package main

import (
	"fmt"
	"runtime"
	"strconv"
	"strings"
)

func main() {
	var input string
	var ret [2]int
	_, err := fmt.Scan(&input)
	if err != nil {
		runtime.Goexit()
		return
	}
	inArr := strings.Split(input, ";")
	if len(inArr) == 0 {
		// fmt.Println(ret)
		return
	}

	match := func(str string) bool {
		if len(str) < 2 || len(str) > 3 {
			return false
		}
		if str[0] != 'W' && str[0] != 'S' && str[0] != 'D' && str[0] != 'A' {
			return false
		}
		if str[1] < '0' || str[1] > '9' {
			return false
		}
		if len(str) == 2 {
			return true
		}
		if str[2] < '0' || str[2] > '9' {
			return false
		}
		return true
	}
	// reg := regexp.MustCompile("^A|D|W|S[0-9]{1,2}$")
	for _, v := range inArr {
		// if !reg.MatchString(v) {
		if !match(v) {
			// fmt.Println("continue")
			continue
		}
		value, err := strconv.Atoi(v[1:])
		if err != nil {
			continue
		}
		switch v[0] {
		case 'A':
			ret[0] -= value
		case 'D':
			ret[0] += value
		case 'W':
			ret[1] += value
		case 'S':
			ret[1] -= value
		}
	}
	fmt.Printf("%d,%d\n", ret[0], ret[1])
}

全部评论

相关推荐

渐好:软光栅真的写明白了吗,既然是软渲那技术栈不应该使用OpenGL,光追和bvh既不算什么高级渲染技术更不应该属于软渲的内容,git那个项目没啥用,建议把前两个项目重新组织一下语言,比如软渲染那个项目 冯着色和msaa、贴图这几项分开写,写的到位点,如果你还学过光追那就单独写出来,如果没把握考官问你答不上来就别写给自己找麻烦,在技术栈那一栏简单提一下自己学过就行,这样杂的放在一起不太严谨,个人愚见.
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务