Leetcode#344. Reverse String(反转字符串)

题目描述#

编写一个函数,其作用是将输入的字符串反转过来。

示例 1:

Copy
输入: "hello" 输出: "olleh"

示例 2:

Copy
输入: "A man, a plan, a canal: Panama" 输出: "amanaP :lanac a ,nalp a ,nam A"

思路#

思路一:

逆序拼接字符串

思路二:

依次交换两边的值

思路三:

直接调用StringBuilder 的 reverse()

思路四:

用栈来实现反转

代码实现#

Copy
package String; import java.util.Stack; /** * 344. Reverse String(反转字符串) * 编写一个函数,其作用是将输入的字符串反转过来。 */ public class Solution344 { public static void main(String[] args) { Solution344 solution344 = new Solution344(); String s = "hello"; System.out.println(solution344.reverseString_4(s)); } /** * 逆序拼接字符串 * * @param s * @return */ public String reverseString(String s) { StringBuilder str = new StringBuilder(); for (int i = s.length() - 1; i >= 0; i--) { str.append(s.charAt(i)); } return String.valueOf(str); } /** * 依次交换两边的值 * * @param s * @return */ public String reverseString_2(String s) { char[] chars = s.toCharArray(); int i = 0; int j = chars.length - 1; while (i < j) { char temp = chars[i]; chars[i] = chars[j]; chars[j] = temp; i++; j--; } return new String(chars); } /** * 直接调用StringBuilder 的 reverse() * * @param s * @return */ public String reverseString_3(String s) { return new StringBuilder(s).reverse().toString(); } /** * 用栈来实现反转 * * @param s * @return */ public String reverseString_4(String s) { Stack<Character> stack = new Stack<>(); char[] chars = s.toCharArray(); String res = ""; for (int i = 0; i < chars.length; i++) { stack.push(chars[i]); } for (int i = 0; i < chars.length; i++) { res += stack.pop(); } return res; } }
posted @   武培轩  阅读(458)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示
CONTENTS