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(与样例输出一致)。
相关推荐
专注仿真8 小时前
ACM算法
算法·深度优先
顺顺 尼10 小时前
linux 进程信号(上)
linux·c++·算法
罗西的思考10 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 ---(5)--- GRPO
人工智能·算法·机器学习
richard_yuu11 小时前
动态规划:强化学习的「数学基础」,从 MDP 到值迭代
深度学习·神经网络·算法·yolo·机器学习·动态规划
mmmmath_311 小时前
LeetCode.225.用队列实现栈
算法
Elaine33611 小时前
数据结构与算法-程序
数据结构·python·算法·计算机基础·编程基础
2601_9657422211 小时前
布局GEO AI本地营销,我重点看这几个细节
大数据·人工智能·算法·ai·新媒体运营
EatFan11 小时前
AI Agent 上生产前先加三道闸门:审批、限权、可回放的工程实践
人工智能·python·算法·多智能体·ai agent·mcp·harness
思茂信息11 小时前
CST软件BCI仿真模型及仿真案例
开发语言·单片机·嵌入式硬件·算法·emc
Persistent的粽子!12 小时前
双指针算法:最大盛水容器
c++·算法·leetcode