题解 | #单词倒排#

单词倒排

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

package main

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

func main() {
    // 初始结果字符串
	var res string
    // 扫描输入字符串,这样的方式能扫描整行
	scan := bufio.NewScanner(os.Stdin)
	scan.Scan()
	input := scan.Text()
	// 将扫描的书入转化为一个字符一个的数组
	arr := strings.Split(input, "")
	// 遍历上面的数组
	for i, k := range arr {
		// 该字符如果是字母就添加到结果字符串上
		if "A" <= k && k <= "z" {
			res += k
		} else {
			// k不是英文字符,就要加空格,但是空格也要判断
			// 三种情况跳过不用加空格
            // 头一个字符不是字母不要加空格
            // 最后一个字符不是字母也不要加空格
            // 当res字符串最后一个字符本身是空格的时候也不要加空格
			if i == 0 || i == len(arr)-1 || res[len(res)-1:] == " " {
				continue
			}
			res += " "
		}
	}
    // 将结果字符串拆分之后反向遍历
    resarr:=strings.Split(res," ")
    for i:=len(resarr)-1;i>=0;i--{
        fmt.Printf("%s ", resarr[i])
    }

}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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