题解 | #单词倒排#

单词倒排

https://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836

package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Scan()
	input := scanner.Bytes()
	nf := func(b byte) bool {
		if b >= 'A' && b <= 'Z' {
			return false
		}
		if b >= 'a' && b <= 'z' {
			return false
		}
		return true
	}
	l := 0
	for _, v := range input {
		if nf(v) {
			v = ' '
		}
		if l == 0 && v != ' ' {
			input[l] = v
			l++
			continue
		}
		if v == ' ' && l > 0 && input[l-1] == ' ' {
			continue
		}
		input[l] = v
		l++
	}
    input = input[:l]
	last := len(input)
	result := make([]string, 0)
	for i := len(input) - 1; i >= 0; i-- {
		if input[i] == ' ' {
			result = append(result, string(input[i+1:last]))
			last = i
		}
		if i == 0 {
			result = append(result, string(input[:last]))
		}
	}
	for i, v := range result {
		fmt.Print(v)
		if i != len(result)-1 {
			fmt.Print(" ")
		}
	}
}

全部评论

相关推荐

04-10 11:56
如皋中学 Java
高斯林的信徒:双c9能简历挂的?
点赞 评论 收藏
分享
04-22 15:13
已编辑
Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务