???? 算法题 ???? |
???? 算法刷题专栏 | 面试必备算法 | 面试高频算法 ????
???? 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
???? 作者简介:硕风和炜,****-Java领域新星创作者????,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享????????????
???? 恭喜你发现一枚宝藏博主,赶快收入囊中吧????
???? 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?????????
???? 算法题 ???? |
???? 目录
- ???? 题目链接
- ⛲ 题目描述
- ???? 求解思路&实现代码&运行结果
- ⚡ 双指针模拟
- ???? 求解思路
- ???? 实现代码
- ???? 运行结果
- ???? 共勉
???? 题目链接
- 344. 反转字符串
⛲ 题目描述
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
示例 1:
输入:s = [“h”,“e”,“l”,“l”,“o”]
输出:[“o”,“l”,“l”,“e”,“h”]
示例 2:
输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]
输出:[“h”,“a”,“n”,“n”,“a”,“H”]
提示:
1 <= s.length <= 105
s[i] 都是 ASCII 码表中的可打印字符
???? 求解思路&实现代码&运行结果
⚡ 双指针模拟
???? 求解思路
- 该题通过俩个双指针在数组上反转字符串即可。
- 具体实现代码如下所示:
???? 实现代码
class Solution {
public void reverseString(char[] s) {
int n = s.length / 2;
int i = 0, j = s.length - 1;
while (n-- > 0) {
char c = s[i];
s[i] = s[j];
s[j] = c;
i++;
j--;
}
}
}
???? 运行结果
???? 共勉
最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉! |