golang解决单词转换

题目描述:输入一个字符串,以回车结束(字符串长度不超过 100)。

该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。

现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。

输入格式

输入共 3 行。

第 1 行是包含多个单词的字符串 s;

第 2 行是待替换的单词 a(长度不超过 100);

第 3 行是 a 将被替换的单词 b(长度不超过 100)。

输出格式

共一行,输出将 s 中所有单词 a 替换成 b 之后的字符串。

输入样例:
复制代码
You want someone to help you
You
I
输出样例:
复制代码
I want someone to help you

题解:

Go 复制代码
package main
import ("fmt"
    "strings"
    "bufio"
    "os"
)
func main(){
    scanner:=bufio.NewScanner(os.Stdin)
    scanner.Scan()
    s:=scanner.Text()
    
    scanner.Scan()
    a:=scanner.Text()
    
    scanner.Scan()
    b:=scanner.Text()
    words:=strings.Split(s," ")
    for i:=range words{
        if words[i]==a{
            words[i]=b
        }
    }
    result := strings.Join(words, " ")
    fmt.Println(result)
}

1. 导入必要的包

go

运行

复制代码
import (
    "fmt"       // 用于输入输出
    "strings"   // 用于字符串处理(拆分、拼接等)
    "bufio"     // 用于读取带空格的完整输入
    "os"        // 提供标准输入(键盘)的访问
)

2. 主函数(main)执行步骤

(1)创建输入扫描器

go

运行

复制代码
scanner := bufio.NewScanner(os.Stdin)
  • 创建一个 scanner 对象,用于读取键盘输入(支持读取带空格的完整行)。
  • bufio.Scanner:是 Go 标准库 bufio 包提供的 "输入扫描工具",核心功能是按行读取输入 (遇到回车就结束一行),还能处理带空格的字符串(这是 fmt.Scan 做不到的)。
  • os.Stdin:是 Go 标准库 os 包提供的 "标准输入流",代表键盘输入(简单说就是你在终端里敲的内容)。
  • scanner := ...:短变量声明,创建一个名为 scanner 的变量,类型是 bufio.Scanner,并把它和 "键盘输入" 绑定起来。
(2)读取三行输入

go

运行

复制代码
// 读取第1行:原字符串 s(包含多个单词的句子)
scanner.Scan()
s := scanner.Text()

// 读取第2行:待替换的单词 a
scanner.Scan()
a := scanner.Text()

// 读取第3行:替换后的单词 b
scanner.Scan()
b := scanner.Text()
  • scanner.Scan():读取一行输入(直到回车结束)。
  • scanner.Text():获取读取到的字符串内容。
(3)拆分原字符串为单词切片

go

运行

复制代码
words := strings.Split(s, " ")
  • 用 strings.Split 按空格拆分原字符串 s,得到一个单词切片(例如 "You want help" 拆分为 ["You", "want", "help"])。
(4)遍历切片,替换目标单词

go

运行

复制代码
for i := range words {
    if words[i] == a {  // 找到与待替换单词 a 匹配的单词
        words[i] = b    // 替换为单词 b
    }
}
  • 循环遍历每个单词,若与 a 完全一致(区分大小写),则替换为 b。
(5)拼接单词并输出结果

go

运行

复制代码
result := strings.Join(words, " ")  // 用空格拼接替换后的单词切片
fmt.Println(result)                 // 输出最终结果

举例验证(输入样例)

plaintext

复制代码
输入第1行:You want someone to help you
输入第2行:You
输入第3行:I
  • 拆分后 words 为 ["You", "want", "someone", "to", "help", "you"]。
  • 替换后 words 为 ["I", "want", "someone", "to", "help", "you"]。
  • 拼接输出:I want someone to help you(与样例输出一致)。
相关推荐
布莱克60513 小时前
C++ 中 map 的 insert 与 emplace:key 已存在时会覆盖吗?
开发语言·数据结构·c++·算法·map
D e re k ZH16 小时前
C++ 系统学习手记:从语法细节到工程实践
开发语言·数据结构·c++·算法
石小石Orz16 小时前
AI 正在蚕食我们的编码能力
前端·后端·算法
民乐团扒谱机18 小时前
【微实验】NSGA-II(非支配排序遗传算法)——解决多目标优化问题的“自然选择模拟器”
linux·人工智能·算法
青少儿编程课堂18 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:中缀表达式求值解析
c++·python·算法·bfs·信息学竞赛
武子康20 小时前
Qwen-Drive 到底是什么:4B 级 VLM 如何成为驾驶策略底座
人工智能·算法·机器学习
zh_xuan1 天前
LeeCode 496. 下一个更大元素I
数据结构·算法·栈·单调栈
机 _ 长1 天前
05 智算运维|8 张卡怎么才算「捆成一张」:NCCL 实测与拓扑
运维·人工智能·算法·智算运维
早起CaiCai1 天前
【2023-01 OM】利用深度学习算法融合异质观测实现海洋场降尺度
人工智能·深度学习·算法