- 0
- 0
- 约8.31千字
- 约 23页
- 2026-03-23 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年华为技术面试经验及答案详解
一、编程题(共3题,每题15分,总分45分)
1.题目:
编写一个函数,实现字符串的快速反转,要求原地修改字符串,不使用额外的内存空间。请用C++或Java实现。
答案与解析:
C++实现:
cpp
includeiostream
includestring
usingnamespacestd;
voidreverseString(strings){
intleft=0,right=s.size()-1;
while(leftright){
swap(s[left],s[right]);
left++;
right--;
}
}
intmain(){
strings=Hello,Huawei!;
reverseString(s);
coutsendl;//输出:!uiaW,olleH
return0;
}
解析:
-使用双指针法,左指针从头部开始,右指针从尾部开始,交换两个指针所指向的字符,然后左右指针向中间移动,直到相遇。
-时间复杂度:O(n),空间复杂度:O(1)。
-注意:C++中字符串是常量类型,需要使用引用传递才能修改字符串内容。
Java实现:
java
publicclassReverseString
原创力文档

文档评论(0)