题解 | #单词倒排#

单词倒排

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

package main

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

func isLetter(ch byte) bool {
    return ('A' <= ch && ch <= 'Z') || ('a' <= ch && ch <= 'z')
}

func reverseWords(s string) string {
    size := len(s)
    s = strings.Trim(s, " ")
    
    slow, fast := 0, 0
    var words []string
    for fast < size {
        if !isLetter(s[fast]) {
            words = append(words, s[slow:fast])
            for !isLetter(s[fast]) && fast<size {fast++}
            slow = fast
        } else {
            fast++
        }
    }

    if fast == size && isLetter(s[fast-1]) {
        words = append(words, s[slow:fast])
    }

    for i,j:=0,len(words)-1; i<j; i,j=i+1,j-1 {
        words[i], words[j] = words[j], words[i]
    }

    return strings.Join(words, " ")
}

func main() {
    var s string

    inputReader := bufio.NewReader(os.Stdin)
    line, _, _ := inputReader.ReadLine()

    s = string(line)

    fmt.Println(reverseWords(s))
}
// 本题输入为一行带空格的字符串,所以采用 inputReader.ReadLine()

全部评论

相关推荐

02-04 15:03
南昌大学 Java
想去三亚看海的迪恩在...:刚刚打电话了说不录取,收了学信网和身份证,入职的信息条都发给我了,这种不录取究竟何意味?
点赞 评论 收藏
分享
2025-12-28 16:32
重庆邮电大学 Java
程序员花海:1.技能放最后,来面试默认你都会,技能没啥用 2.实习写的看起来没啥含金量,多读读部门文档,包装下 接LLM这个没含金量 也不要用重构这种 不会给实习生做的 3.抽奖这个还是Demo项目,实际在公司里面要考虑策略,满减,触发点,触发规则 库存 之类的,不是这个项目这么简单 4.教育背景提前,格式为 教育背景 实习 项目 技能 自我评价
简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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