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(与样例输出一致)。
相关推荐
imaol11 小时前
文件编程--标准IO
linux·运维·算法
青 春 记 忆1 小时前
LeetCode 121. 买卖股票的最佳时机|Python 解法详解
python·算法·leetcode
stolentime2 小时前
AT_agc066_a [AGC066A] Adjacent Difference题解
c++·算法·贪心算法·构造
渣波2 小时前
深度解析:LeetCode 51. N 皇后 —— 回溯算法的巅峰之作
算法
咪饭只吃一小碗2 小时前
# C++ STL 常用容器方法全面总结vector / map / set / unordered_map / unordered_set
算法
daad7772 小时前
802.11 前导码与 STF 深度解析(含检测算法与 5G 对比
人工智能·算法·5g·wifi·802.11·前导码
Navigator_Z3 小时前
LeetCode //C - 1203. Sort Items by Groups Respecting Dependencies
c语言·算法·leetcode
我变成萤火虫4 小时前
2026 ICPC沈阳邀请赛Vp补题
数据结构·c++·算法·贪心算法·stl·排序算法·动态规划