网易首页 > 网易号 > 正文 申请入驻

2026-04-25:反转元音数相同的单词。用go语言,给定一个由小写英文单词组成的字符串,各单词之间用单空格分隔。 先统计第一个单词里出现

0
分享至

2026-04-25:反转元音数相同的单词。用go语言,给定一个由小写英文单词组成的字符串,各单词之间用单空格分隔。

先统计第一个单词里出现的元音字母数量(元音为 a/e/i/o/u)。记这个数量为 k。

然后从第二个单词开始逐个处理:如果某个单词的元音数量也等于 k,就把该单词反转字母顺序;否则保持该单词不变。

最后把所有单词按原有顺序重新用空格拼接,输出结果字符串。

1 <= s.length <= 100000。

s 仅由小写的英文字母和空格组成。

s 中的单词由 单个空格 隔开。

s 不包含前导或尾随空格。

输入: s = "cat and mice"。

输出: "cat dna mice"。

解释:

第一个单词 "cat" 包含 1 个元音字母。

"and" 包含 1 个元音字母,因此将其反转为 "dna"。

"mice" 包含 2 个元音字母,因此保持不变。

最终结果字符串为 "cat dna mice"。

题目来自力扣3775。

代码执行过程详细分步描述 第一步:定义元音统计函数(countVowel)

这是一个辅助函数,作用是统计一个字符串中元音字母(a/e/i/o/u)的总个数

  1. 1. 遍历字符串里的每一个字符;

  2. 2. 逐个判断字符是否是元音字母;

  3. 3. 每找到一个元音字母,计数加1;

  4. 4. 遍历完成后,返回最终的元音计数结果。

第二步:执行核心逻辑函数(reverseWords) 子步骤1:拆分字符串为单词数组

代码将输入的完整字符串按单个空格切割,把连续的字符串拆分成独立的单词列表:

  • • 输入:"cat and mice"

  • • 切割后得到单词数组:["cat", "and", "mice"]

子步骤2:统计第一个单词的元音数(确定k值)
  1. 1. 取出单词数组的第一个单词:cat

  2. 2. 调用元音统计函数计算元音数:

  • • 字符c:非元音;

  • • 字符a:元音,计数+1;

  • • 字符t:非元音;

3. 最终第一个单词元音数k = 1,并把这个值固定下来。

子步骤3:遍历处理第二个及之后的所有单词

从第二个单词开始(数组下标为1),逐个判断、处理:

  1. 1.处理第二个单词:and

  • • 调用函数统计元音数:a是元音,n/d非元音,元音数=1;

  • • 判断:元音数(1)等于k(1),满足反转条件;

  • • 执行反转操作:将单词and的字母顺序颠倒,变成dna

  • • 用反转后的单词替换原单词,数组变为:["cat", "dna", "mice"]

2.处理第三个单词:mice

  • • 调用函数统计元音数:ie是元音,元音数=2;

  • • 判断:元音数(2)不等于k(1),不满足反转条件;

  • • 保持原单词不变,数组仍为:["cat", "dna", "mice"]

子步骤4:拼接单词数组为完整字符串

将处理后的单词数组,按单个空格重新拼接成一个完整字符串:

  • • 拼接结果:cat dna mice

第三步:主函数输出结果
  1. 1. 定义输入字符串s = "cat and mice"

  2. 2. 调用核心处理函数得到结果;

  3. 3. 打印输出最终结果:cat dna mice

时间复杂度与额外空间复杂度分析 1. 总时间复杂度

时间复杂度描述代码执行的总操作次数与输入数据规模的关系

  1. 1. 字符串拆分、拼接:操作次数与字符串总长度n成正比,复杂度为O(n)

  2. 2. 元音统计:遍历整个字符串的所有字符一次,复杂度为O(n)

  3. 3. 单词反转:仅反转符合条件的单词,总操作次数不超过字符串总长度n,复杂度为O(n)

所有步骤都是线性操作,总时间复杂度为 O(n)(n 为输入字符串的总长度)。

2. 总额外空间复杂度

额外空间复杂度描述代码执行过程中,除了输入和输出外,额外占用的内存空间

  1. 1. 代码需要创建单词数组存储所有单词,空间大小与字符串长度n成正比;

  2. 2. 反转单词时需要创建临时字节切片,空间大小不超过单词总长度;

  3. 3. 所有临时变量的空间占用均为线性级别;

总额外空间复杂度为 O(n)(n 为输入字符串的总长度)。

总结

  1. 1. 执行流程:拆分字符串→统计首单词元音数→遍历判断并反转符合条件的单词→拼接字符串→输出结果;

  2. 2. 时间复杂度:O(n),处理效率高,可满足题目中最长10万字符的输入要求;

  3. 3. 额外空间复杂度:O(n),需要线性空间存储单词和临时数据。

Go完整代码如下:

package main

import (
"fmt"
"slices"
"strings"
)

func countVowel(s string) (vowel int) {
for _, c := range s {
if strings.IndexRune("aeiou", c) >= 0 {
vowel++
}
}
return
}

func reverseWords(s string)string {
a := strings.Split(s, " ")
cnt0 := countVowel(a[0])
for i := 1; i < len(a); i++ {
if countVowel(a[i]) == cnt0 {
t := []byte(a[i])
slices.Reverse(t)
a[i] = string(t)
}
}
return strings.Join(a, " ")
}

func main() {
s := "cat and mice"
result := reverseWords(s)
fmt.Println(result)
}

Python完整代码如下:

# -*-coding:utf-8-*-

def count_vowel(s: str) -> int:
"""Count vowels in a string"""
vowel = 0
for c in s:
if c in "aeiou":
vowel += 1
return vowel

def reverse_words(s: str) -> str:
"""Reverse words that have the same vowel count as the first word"""
words = s.split(" ")
cnt0 = count_vowel(words[0])
for i in range(1, len(words)):
if count_vowel(words[i]) == cnt0:
# Reverse the word
words[i] = words[i][::-1]
return" ".join(words)

def main():
s = "cat and mice"
result = reverse_words(s)
print(result)

if __name__ == "__main__":
main()

C++完整代码如下:

  




int countVowel(const std::string& s) {
int vowel = 0;
std::string vowels = "aeiou";
for (char c : s) {
if (vowels.find(c) != std::string::npos) {
vowel++;
}
}
return vowel;
}

std::string reverseWords(const std::string& s) {
// Split string into words
std::vector string > words;
std::stringstream ss(s);
std:: string word;

while (ss >> word) {
words.push_back(word);
}

if (words.empty()) {
return "" ;
}

int cnt0 = countVowel(words[ 0 ]);

for (size_t i = 1 ; i < words.size(); i++) {
if (countVowel(words[i]) == cnt0) {
// Reverse the word
std::reverse(words[i].begin(), words[i].end());
}
}

// Join the words back
std:: string result;
for (size_t i = 0 ; i < words.size(); i++) {
if (i > 0 ) {
result += " " ;
}
result += words[i];
}

return result;
}

int main() {
std:: string s = "cat and mice" ;
std:: string result = reverseWords(s);
std::cout << result << std::endl;
return 0 ;
}

我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
胖东来把全国房东都干懵了!

胖东来把全国房东都干懵了!

贩财局
2026-08-11 16:28:26
伊朗如何击落美军6000万美元F-15E战斗机:无人机群盯梢 战机刚预警就中导弹

伊朗如何击落美军6000万美元F-15E战斗机:无人机群盯梢 战机刚预警就中导弹

红星新闻
2026-08-12 14:03:33
第二批朝鲜兵抵达俄罗斯!兵力5万+新武器,泽连斯基最担心的事情还是发生了

第二批朝鲜兵抵达俄罗斯!兵力5万+新武器,泽连斯基最担心的事情还是发生了

军武次位面
2026-08-10 17:55:01
自主向上,合资向新,海外向远,上汽一个都没落下

自主向上,合资向新,海外向远,上汽一个都没落下

车云网
2026-08-12 14:18:59
哪吒获奖无人站起,惊蛰无声获奖全体起立,讽刺的是哪吒的奖更大

哪吒获奖无人站起,惊蛰无声获奖全体起立,讽刺的是哪吒的奖更大

芊手若
2026-08-11 11:13:13
朝鲜军队公然援俄,惹火烧身是迟早的事儿

朝鲜军队公然援俄,惹火烧身是迟早的事儿

微评社
2026-08-09 19:18:14
泪奔!程梦圆遗体腐臭,哥亲手抬棺送老家,哭着说:妹怕黑 咱回家

泪奔!程梦圆遗体腐臭,哥亲手抬棺送老家,哭着说:妹怕黑 咱回家

吃货的分享
2026-08-11 08:54:16
2026年养老金上调落地,涨钱方案出炉,算算你的账户能加多少?

2026年养老金上调落地,涨钱方案出炉,算算你的账户能加多少?

阿讯说天下
2026-08-12 12:11:10
官宣!41岁C罗与32岁乔治娜低调结婚 婚礼私密温馨 婚前协议曝光

官宣!41岁C罗与32岁乔治娜低调结婚 婚礼私密温馨 婚前协议曝光

念洲
2026-08-12 06:48:16
省长金湘军:夫人卷走1.2亿港币,弟弟负责转移钱款到境外,秘书分红6800万,司机成公司法人

省长金湘军:夫人卷走1.2亿港币,弟弟负责转移钱款到境外,秘书分红6800万,司机成公司法人

闻讯而谈
2026-08-12 15:39:11
宇树科技中签结果公布,股民:中签后不敢发朋友圈,怕同事嫉妒,也怕亲戚借钱,计划卖出后全款提车

宇树科技中签结果公布,股民:中签后不敢发朋友圈,怕同事嫉妒,也怕亲戚借钱,计划卖出后全款提车

鲁中晨报
2026-08-12 15:54:08
五小龙集体赴沪背后 :具身智能的算法神话,最终要靠数据落地 | 前沿在线

五小龙集体赴沪背后 :具身智能的算法神话,最终要靠数据落地 | 前沿在线

前沿在线
2026-07-23 22:26:47
世界杯夺冠英雄 5000万送走!巴萨离队第7人敲定 只差官宣

世界杯夺冠英雄 5000万送走!巴萨离队第7人敲定 只差官宣

叶青足球世界
2026-08-12 09:00:44
郑丽文:一旦国民党执政,将在第一时间迅速恢复跟大陆的各项往来!

郑丽文:一旦国民党执政,将在第一时间迅速恢复跟大陆的各项往来!

梁察天下
2026-08-12 14:00:11
砸观音像、给死人打电话、把生辰八字钉古树,因车祸去世的24岁网红姜小柔,她的死被网友猜疑与不敬重迷信有关!

砸观音像、给死人打电话、把生辰八字钉古树,因车祸去世的24岁网红姜小柔,她的死被网友猜疑与不敬重迷信有关!

谭谈社会
2026-08-12 08:17:56
西安男子入室杀害前女友案一审宣判:死刑!曾立“深情人设”遭检察官驳斥

西安男子入室杀害前女友案一审宣判:死刑!曾立“深情人设”遭检察官驳斥

红星新闻
2026-08-12 16:33:11
想要活得久,要管住嘴,这20个要记住:1. 猪头肉,打死不吃

想要活得久,要管住嘴,这20个要记住:1. 猪头肉,打死不吃

新时代的两性情感
2026-08-12 04:38:44
国产笔记本造假再被抓现行!宣传100% sRGB实测仅59%

国产笔记本造假再被抓现行!宣传100% sRGB实测仅59%

快科技
2026-08-12 11:17:05
再爆大冷2-6!吴宜泽、赵心童都出局了,世界第1最新争夺形势出炉

再爆大冷2-6!吴宜泽、赵心童都出局了,世界第1最新争夺形势出炉

小火箭爱体育
2026-08-12 17:05:35
0-3惨败!就在刚刚,WTT瑞典大满贯接连爆大冷:国乒8胜2负!38岁老将掀翻世界第二,男单外协主力集体回家

0-3惨败!就在刚刚,WTT瑞典大满贯接连爆大冷:国乒8胜2负!38岁老将掀翻世界第二,男单外协主力集体回家

小七说篮球
2026-08-12 09:45:27
2026-08-12 18:56:49
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1388文章数 79关注度
往期回顾 全部

教育要闻

毕业十年,美式教育也会做噩梦吗?

头条要闻

朱镕基同志逝世 享年98岁

头条要闻

朱镕基同志逝世 享年98岁

体育要闻

杜兰特,所谓的“联盟小王”

娱乐要闻

老戏骨杨昆两夺金鹰奖,因物业费被告

财经要闻

李嘉诚,再一次大撤退!他嗅到了什么?

科技要闻

Manus第二季,浪子回头

汽车要闻

这台大众不一般 上汽大众ID.ERA.5S综合续航约2000公里

态度原创

教育
亲子
艺术
旅游
手机

教育要闻

这对于小学三年级的小朋友来说,不是很难吗?

亲子要闻

奶奶生病了,宝蓝化身贴心小管家,一边照顾奶奶一边整理家务

艺术要闻

米芾大字真迹出土,弥补书法史600年的遗憾,苏轼赞叹:比肩王羲之!

旅游要闻

8月14日万盛旅游度假区健康集市开启,专家支招夏季避暑健康

手机要闻

奥造科技推出冷奥L100手机液冷散热器,568元

无障碍浏览 进入关怀版