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

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.

相关推荐
热点推荐
阿尔特塔:真正驱动和激励阿森纳的,是那种不可思议的求胜欲

阿尔特塔:真正驱动和激励阿森纳的,是那种不可思议的求胜欲

兰亭墨未干
2026-05-09 08:00:18
劳务派遣在央国企杀疯了!

劳务派遣在央国企杀疯了!

灯锦年
2026-04-21 17:56:52
A股:刚刚,三部门联合印发,请做好准备,下周将迎来更大的变盘

A股:刚刚,三部门联合印发,请做好准备,下周将迎来更大的变盘

云鹏叙事
2026-05-09 00:00:06
网红痞幼拿下张雪机车,纯粹蹭热度

网红痞幼拿下张雪机车,纯粹蹭热度

喜欢历史的阿繁
2026-05-09 01:27:27
备胎一夜转正!英特尔敲定苹果代工初步协议,股价暴涨!

备胎一夜转正!英特尔敲定苹果代工初步协议,股价暴涨!

EETOP半导体社区
2026-05-09 08:10:37
特朗普访华有变?美军机刚到北京中方就阻断,华盛顿坐不住了!

特朗普访华有变?美军机刚到北京中方就阻断,华盛顿坐不住了!

阿器谈史
2026-05-06 13:15:47
两颗油桶里泡着的头颅,从直隶总督到身首异处的生死六十天

两颗油桶里泡着的头颅,从直隶总督到身首异处的生死六十天

历史按察使司
2026-05-08 17:21:27
张豆豆教会我们一个道理:女人太能吃苦,就有吃不完的苦

张豆豆教会我们一个道理:女人太能吃苦,就有吃不完的苦

八卦南风
2026-05-08 17:33:48
中国男团连续16届锁定世乒赛奖牌,日本网友:决赛会是日本对中国

中国男团连续16届锁定世乒赛奖牌,日本网友:决赛会是日本对中国

冷桂零落
2026-05-09 07:28:35
震惊!员工85天套取2万住宿费差价,被开除诉至法院,评论区炸锅

震惊!员工85天套取2万住宿费差价,被开除诉至法院,评论区炸锅

火山詩话
2026-05-08 06:18:04
马卡:卡马文加最先不满阿韦洛亚,后者曾与6名球员有过分歧

马卡:卡马文加最先不满阿韦洛亚,后者曾与6名球员有过分歧

懂球帝
2026-05-09 06:48:09
同样翻唱别人的歌,为啥大衣哥从不被起诉,旭日阳刚却被禁唱

同样翻唱别人的歌,为啥大衣哥从不被起诉,旭日阳刚却被禁唱

西楼知趣杂谈
2026-05-09 08:01:54
2名英国公民感染汉坦病毒

2名英国公民感染汉坦病毒

新京报
2026-05-08 14:33:11
网易云音乐回应下架争议:已购歌曲权益不变,但红心收藏有门槛

网易云音乐回应下架争议:已购歌曲权益不变,但红心收藏有门槛

算力游侠
2026-05-08 22:43:44
伯明翰发布可容纳62000人新球场效果图,位于高铁线路边上

伯明翰发布可容纳62000人新球场效果图,位于高铁线路边上

懂球帝
2026-05-08 09:22:12
谁都不敢相信,打了四年的俄乌战争,居然会以这种方式停战了!

谁都不敢相信,打了四年的俄乌战争,居然会以这种方式停战了!

荷兰豆爱健康
2026-05-07 07:39:28
和刘涛分手后,他常年定居上海,如今身价过亿,年过60却依旧单身

和刘涛分手后,他常年定居上海,如今身价过亿,年过60却依旧单身

一盅情怀
2026-04-28 12:22:02
浪漫!马龙携漂亮妻子夏露同游剑桥,泛舟康河为爱妻拍照引老外艳羡

浪漫!马龙携漂亮妻子夏露同游剑桥,泛舟康河为爱妻拍照引老外艳羡

818体育
2026-05-08 12:29:05
巴萨赢麻了!主场踢皇马:打平即夺冠 票房1500万刷新纪录

巴萨赢麻了!主场踢皇马:打平即夺冠 票房1500万刷新纪录

叶青足球世界
2026-05-08 20:23:33
河南籍演员北京聚餐!一眼望去熟人满满,李亚鹏岳云鹏刘震云都在

河南籍演员北京聚餐!一眼望去熟人满满,李亚鹏岳云鹏刘震云都在

天天热点见闻
2026-05-08 04:32:33
2026-05-09 08:47:00
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1217文章数 67关注度
往期回顾 全部

科技要闻

美国政府强力下场 苹果英特尔达成代工协议

头条要闻

媒体:特朗普若顺利来华 将是美总统时隔十年再访中国

头条要闻

媒体:特朗普若顺利来华 将是美总统时隔十年再访中国

体育要闻

他把首胜让给队友,然后用一年时间还清账单

娱乐要闻

古天乐被曝隐婚生子,新娘竟是她

财经要闻

白宫:特朗普计划5月14日至15日访问中国

汽车要闻

MG 4X实车亮相 将于5月11日开启盲订

态度原创

家居
教育
亲子
旅游
公开课

家居要闻

流动的尺度 打破家的形式主义

教育要闻

你收到过最烂的礼物是什么?

亲子要闻

小锐锐会走路后笑得很开心

旅游要闻

藏北高原“海洋蓝” 壮美奇观引客来

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版