- 0
- 0
- 约4.8千字
- 约 13页
- 2026-03-23 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年软件工程师算法设计面试题含答案
一、编程实现题(共3题,每题20分)
1.题1(20分):
题目:
设计一个函数,实现字符串的“翻转单词顺序”功能,但保持每个单词内部字符顺序不变。例如,输入`helloworld`,输出`worldhello`。要求不使用额外的数据结构(如数组或列表),且时间复杂度为O(n)。
答案:
python
defreverse_words(s:str)-str:
ifnots:
return
先翻转整个字符串
s=s[::-1]
start=0
result=[]
fori,charinenumerate(s):
ifchar==:
result.append(s[start:i][::-1])
start=i+1
result.append(s[start:][::-1])#处理最后一个单词
return.join(result)
解析:
1.首先翻转整个字符串,例如`helloworld`变为`dlrowolleh`。
2.然后遍历翻转后的字符串,按空格分割单词,并在添加到结果前再次翻转每个单词(因为整体已翻转)。
3.最后拼接结果。时间复杂度为O(n),空间复杂度为O(n)(由于字符串不可变,需要额外
原创力文档

文档评论(0)