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

2026-05-08:反转字符串前缀。用go语言,给定字符串 s 和整数 k,把 s 的开头 k 个字符顺序完全倒过来(其余字符保持原样),输出新的字

0
分享至

2026-05-08:反转字符串前缀。用go语言,给定字符串 s 和整数 k,把 s 的开头 k 个字符顺序完全倒过来(其余字符保持原样),输出新的字符串。

1 <= s.length <= 100。

s 仅由小写英文字母组成。

1 <= k <= s.length。

输入: s = "abcd", k = 2。

输出: "bacd"。

解释:

前 k = 2 个字符 "ab" 反转为 "ba"。最终得到的结果字符串为 "bacd"。

题目来自力扣3794。

执行过程详细描述 步骤1:接收输入参数

程序接收到两个关键输入:

  • • 待处理的原始字符串:abcd(由4个小写英文字母组成)

  • • 需要反转的前缀长度:2(表示只反转字符串最开头的2个字符)

步骤2:字符串转换为可修改的字节切片

Go语言中的字符串是不可变类型,无法直接修改字符顺序,因此需要将字符串转换为字节切片

  • • 原始字符串abcd转换后得到字节切片:['a', 'b', 'c', 'd']

  • • 转换的目的:只有字节切片支持直接交换元素位置,才能实现字符反转

步骤3:校验并确定反转的边界
  1. 1. 计算字节切片的总长度:长度为4

  2. 2. 校验输入的k值:题目规定1<=k<=字符串长度,这里k=2小于4,无需调整

  3. 3. 确定反转区间:需要反转索引0到索引1的字符(前k个字符,索引从0开始计数,结束位置为k-1)

步骤4:双指针法反转指定区间的字符

使用左指针右指针相向移动,交换指针指向的字符,直到两指针相遇:

  1. 1. 初始化指针:左指针l指向起始位置0(字符a),右指针r指向结束位置1(字符b

  2. 2. 第一次交换:交换l=0r=1的字符,字节切片变为['b', 'a', 'c', 'd']

  3. 3. 指针移动:左指针l加1变为1,右指针r减1变为0

  4. 4. 终止判断:此时l >= r,反转操作结束,无需继续交换

步骤5:保留剩余字符的原始顺序

反转完成后,索引2、3位置的字符cd全程没有被修改,保持原始顺序不变。
最终的字节切片为:['b', 'a', 'c', 'd']

步骤6:字节切片转换回字符串

将处理完成的字节切片重新转换为Go语言字符串格式,得到最终结果:bacd

步骤7:输出结果

程序将最终的字符串bacd打印输出,完成整个处理流程。

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

时间复杂度为O(k)(k是需要反转的前缀长度):

  • • 核心操作是双指针交换字符,只需要遍历前k个字符,交换次数为k/2次;

  • • 剩余的字符无需任何操作,整体执行次数和k成正比,与字符串总长度n无关。

  • • 简化表示:也可写为O(n)(n为字符串总长度),因为k≤n,是等价的复杂度量级。

2. 额外空间复杂度

额外空间复杂度为O(n)(n为字符串总长度):

  • • 程序额外创建了一个和原字符串长度相同的字节切片,用于存储和修改字符;

  • • 除了这个字节切片外,只使用了常数个指针变量(l、r、n等),没有占用其他额外空间;

  • • 额外空间大小与输入字符串的长度成正比。

总结
  1. 1. 执行核心:转字节切片→双指针反转前k个字符→转回字符串,剩余字符保持不变;

  2. 2. 时间复杂度:O(k)(最优情况,仅遍历需要反转的部分);

  3. 3. 额外空间复杂度:O(n)(因字符串不可变,必须开辟新切片存储)。

Go完整代码如下:

package main

import (
"fmt"
)

func reversePrefix(s string, k int)string {
// 将字符串转换为字节切片以便交换
bytes := []byte(s)
n := len(bytes)
// 确保 k 不超过字符串长度
if k > n {
k = n
}
// 反转从 0 到 k-1 的字符
for l, r := 0, k-1; l < r; l, r = l+1, r-1 {
bytes[l], bytes[r] = bytes[r], bytes[l]
}
returnstring(bytes)
}

func main() {
s := "abcd"
k := 2
result := reversePrefix(s, k)
fmt.Println(result)
}

Python完整代码如下:

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

def reversePrefix(s: str, k: int) -> str:
# 将字符串转换为列表以便交换
chars = list(s)
n = len(chars)
# 确保 k 不超过字符串长度
if k > n:
k = n
# 反转从 0 到 k-1 的字符
left, right = 0, k - 1
while left < right:
chars[left], chars[right] = chars[right], chars[left]
left += 1
right -= 1
return''.join(chars)

if __name__ == "__main__":
s = "abcd"
k = 2
result = reversePrefix(s, k)
print(result)

C++完整代码如下:

  



using namespace std;

string reversePrefix(string s, int k) {
// 确保 k 不超过字符串长度
int n = s.length();
if (k > n) {
k = n;
}
// 反转从 0 到 k-1 的字符
for (int l = 0, r = k - 1; l < r; l++, r--) {
swap(s[l], s[r]);
}
return s;
}

int main() {
string s = "abcd";
int k = 2;
string result = reversePrefix(s, k);
cout << result << endl;
return0;
}

我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的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.

相关推荐
热点推荐
26年“下岗潮”来了?三大行业即将面临失业风险,早知道早准备

26年“下岗潮”来了?三大行业即将面临失业风险,早知道早准备

星娱叨叨社
2026-06-27 15:01:24
为什么往死里扫黄?网友分享太真实了,一次说透

为什么往死里扫黄?网友分享太真实了,一次说透

另子维爱读史
2026-05-27 20:16:03
前国脚杨晨:希望日本队战胜巴西!体育无国界,我不支持日本男足

前国脚杨晨:希望日本队战胜巴西!体育无国界,我不支持日本男足

开成运动会
2026-06-29 00:25:24
为什么美国签证官有时候一个问题不问,直接就给过了?

为什么美国签证官有时候一个问题不问,直接就给过了?

解说阿洎
2026-06-28 06:08:59
中纪委再出大招!公务员这4类行为将被大数据盯死,沾上就完蛋!

中纪委再出大招!公务员这4类行为将被大数据盯死,沾上就完蛋!

细说职场
2026-06-29 15:42:13
C罗的长子:身高超1.9米,遗传父亲的运动天赋,和乔治娜相处融洽

C罗的长子:身高超1.9米,遗传父亲的运动天赋,和乔治娜相处融洽

小书生吃瓜
2026-06-29 16:00:26
月捐扣款失败会上征信?韩红基金会再起波澜,有捐赠人称陷入恐慌

月捐扣款失败会上征信?韩红基金会再起波澜,有捐赠人称陷入恐慌

火山詩话
2026-06-29 06:01:27
美媒:美伊同意停止互袭 30日在多哈继续谈判

美媒:美伊同意停止互袭 30日在多哈继续谈判

新华社
2026-06-29 07:11:07
历史性突破!美以黎签署三方达成一致,共同打击真主党武装力量

历史性突破!美以黎签署三方达成一致,共同打击真主党武装力量

以色列计划Pro
2026-06-27 20:16:08
勇士酝酿了一笔大交易!一旦成功,别说雷霆,连马刺也要担心了

勇士酝酿了一笔大交易!一旦成功,别说雷霆,连马刺也要担心了

体育一点就通
2026-06-29 13:24:48
人老了,再憋的慌也不要去这几个地方:1、原来的单位

人老了,再憋的慌也不要去这几个地方:1、原来的单位

富书
2026-06-26 23:45:06
印度已永久失去在边界占便宜的机会,藏南九万平方公里正在回归

印度已永久失去在边界占便宜的机会,藏南九万平方公里正在回归

老覃讲历史
2026-06-29 13:15:26
听过什么让人心酸的故事 看网友讲述 心底一颤原来人间苦难这么多

听过什么让人心酸的故事 看网友讲述 心底一颤原来人间苦难这么多

侃神评故事
2026-06-28 07:25:07
男女的性压抑已经恐怖如斯了?

男女的性压抑已经恐怖如斯了?

灯锦年
2026-06-29 17:15:19
四任主政25年皆被查,任职期间乱作为,终究是自己挖坑自己跳

四任主政25年皆被查,任职期间乱作为,终究是自己挖坑自己跳

元芳有看法
2026-06-28 21:50:43
2026高考成绩公布后,张桂梅式教育被批,再次证明:父母放任不管的代价,远比想象中更残酷...

2026高考成绩公布后,张桂梅式教育被批,再次证明:父母放任不管的代价,远比想象中更残酷...

犀利强哥
2026-06-29 06:58:36
张雪峰铁律:文科仅这3个专业值得报,其余全是天坑!

张雪峰铁律:文科仅这3个专业值得报,其余全是天坑!

王姐懒人家常菜
2026-06-28 15:37:41
九华山美女道士,靠身体施法“日进斗金”,8个男徒弟曝光内幕

九华山美女道士,靠身体施法“日进斗金”,8个男徒弟曝光内幕

苏大强专栏
2025-05-08 15:16:18
60~70岁老人最高危的8个行为,占一个都很可怕,不沾边太优秀了

60~70岁老人最高危的8个行为,占一个都很可怕,不沾边太优秀了

暖风吹过竹林
2026-06-29 15:12:03
一句话,韩国举国梭哈了!!!

一句话,韩国举国梭哈了!!!

贩财局
2026-06-29 14:15:18
2026-06-29 19:23:00
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1305文章数 69关注度
往期回顾 全部

科技要闻

杀疯了!深圳一天出两家200亿具身智能公司

头条要闻

媒体:台军偷拍福建舰 还异想天开用几款导弹摧毁航母

头条要闻

媒体:台军偷拍福建舰 还异想天开用几款导弹摧毁航母

体育要闻

他和伊朗队,再次赢得全世界的尊重

娱乐要闻

跟风电影《给阿公的牛肉丸》开机

财经要闻

近20家半导体企业开启新一轮涨价潮

汽车要闻

全新宝马iX3长轴版将于成都车展预售 四季度交付

态度原创

艺术
健康
游戏
本地
军事航空

艺术要闻

24幅 当代画家人物油画作品

狂吃“糯叽叽”小心肠梗阻!

LOL要出怀旧服!重玩老版本还能找回当年的乐趣吗?

本地新闻

贵州小城的新目标:举办“村超”世界杯!

军事要闻

普京最新发声:俄罗斯正处于命运攸关之际

无障碍浏览 进入关怀版