题解 | #句子逆序#

句子逆序

https://www.nowcoder.com/practice/48b3cb4e3c694d9da5526e6255bb73c3

package main

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

func reverse(sb []byte, left int, right int) {
    // 对 sb[left, right] 区间进行反转,左闭右闭区间
    for i,j := left,right; i<j; i,j = i+1,j-1 {
        sb[i], sb[j] = sb[j], sb[i]
    }
}

func generateReverseSentence(s string) string {
    sb := []byte(s)
    size := len(sb)
    
    // 整体反转
    reverse(sb, 0, size-1)

    // 对每个单词进行反转
    slow, fast := 0, 0
    for fast < size {
        for fast < size && sb[fast] != ' ' {
            fast++
        }
        reverse(sb, slow, fast-1)
        slow = fast + 1
        fast = slow
    }

    return string(sb)
}

func main() {
    var s string

    inputReader := bufio.NewReader(os.Stdin)
    data, _, _ := inputReader.ReadLine()
    s = string(data)

    fmt.Println(generateReverseSentence(s))
}
// 本题为输入一个字符串,所以采用标准处理:inputReader.ReadLine()

全部评论

相关推荐

2025-12-28 16:32
重庆邮电大学 Java
程序员花海:1.技能放最后,来面试默认你都会,技能没啥用 2.实习写的看起来没啥含金量,多读读部门文档,包装下 接LLM这个没含金量 也不要用重构这种 不会给实习生做的 3.抽奖这个还是Demo项目,实际在公司里面要考虑策略,满减,触发点,触发规则 库存 之类的,不是这个项目这么简单 4.教育背景提前,格式为 教育背景 实习 项目 技能 自我评价
简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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