You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言实现:不反转单词本身,仅反转点分隔的单词顺序

反转以点号分隔的单词顺序

需求:给定字符串S,需在不反转单个单词内容的前提下,反转字符串中单词的整体顺序,单词之间以点号(.)分隔。

  • 输入示例:i.like.this.program.very.much
  • 输出示例:much.very.program.this.like.i

原代码问题说明

你提供的代码存在逻辑错误:代码中用空格作为分隔符进行分割和拼接,但需求里单词是以点号分隔的,因此无法得到正确结果。

正确的Go语言实现

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "i.like.this.program.very.much"
    // 按点号分割字符串为单词切片
    words := strings.Split(str, ".")
    wordCount := len(words)
    // 首尾交换反转单词切片
    for i := 0; i < wordCount/2; i++ {
        oppositeIdx := wordCount - i - 1
        words[i], words[oppositeIdx] = words[oppositeIdx], words[i]
    }
    // 用点号拼接反转后的单词切片
    reversedStr := strings.Join(words, ".")
    fmt.Println(reversedStr)
}

代码说明

  1. strings.Split(str, "."):将原字符串按点号分割成独立单词的切片
  2. 双指针交换:通过首尾位置的单词交换实现切片反转,无需额外创建新切片,内存效率更高
  3. strings.Join(words, "."):将反转后的单词切片重新拼接为以点号分隔的目标字符串

内容的提问来源于stack exchange,提问作者RAM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 17:54:34