题解 | #单词倒排#
单词倒排
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])
}
}
查看19道真题和解析