Leetcode#344. Reverse String(反转字符串)
题目描述
编写一个函数,其作用是将输入的字符串反转过来。
示例 1:
输入: "hello"
输出: "olleh"
示例 2:
输入: "A man, a plan, a canal: Panama"
输出: "amanaP :lanac a ,nalp a ,nam A"
思路
思路一:
逆序拼接字符串
思路二:
依次交换两边的值
思路三:
直接调用StringBuilder 的 reverse()
思路四:
用栈来实现反转
代码实现
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;
}
}
Leetcode#344. Reverse String(反转字符串)的更多相关文章
- LeetCode 344. Reverse String(反转字符串)
题目描述 LeetCode 344. 反转字符串 请编写一个函数,其功能是将输入的字符串反转过来. 示例 输入: s = "hello" 返回: "olleh" ...
- [LeetCode] 344. Reverse String 翻转字符串
Write a function that reverses a string. The input string is given as an array of characters char[]. ...
- 344 Reverse String 反转字符串
请编写一个函数,其功能是将输入的字符串反转过来.示例:输入:s = "hello"返回:"olleh"详见:https://leetcode.com/probl ...
- Leetcode 344:Reverse String 反转字符串(python、java)
Leetcode 344:Reverse String 反转字符串 公众号:爱写bug Write a function that reverses a string. The input strin ...
- [LeetCode] 344 Reverse String && 541 Reverse String II
原题地址: 344 Reverse String: https://leetcode.com/problems/reverse-string/description/ 541 Reverse Stri ...
- leetcode 344. Reverse String 、541. Reverse String II 、796. Rotate String
344. Reverse String 最基础的旋转字符串 class Solution { public: void reverseString(vector<char>& s) ...
- Leetcode 344 Reverse String 字符串处理
题意:反转字符串,用好库函数. class Solution { public: string reverseString(string s) { reverse(s.begin(),s.end()) ...
- (字符串 数组 递归 双指针) leetcode 344. Reverse String
Write a function that reverses a string. The input string is given as an array of characters char[]. ...
- LeetCode 344. Reverse String
Problem: Write a function that takes a string as input and returns the string reversed. Example: Giv ...
随机推荐
- 微信JSSDK使用步骤(用于在微信浏览器中自定义分享,分享到朋友圈,拍照,扫一扫等功能)
一.使用JSSDK需要一个公众号(需要认证!): (1).把自己项目的服务器地址输入. (2).把MP_verify_m7Qp93BAuIGDWRVO.txt 文件下载下来,放到该服务器域名指向的根 ...
- LeetCode-876 链表的中间结点
对于链表的中某个位置结点的定位一般都会用到两个链表结点指针,例如链表倒数第K个结点问题使用的是先后指针,该题中用到的快慢指针. 本题的具体解法就是快指针走两步.慢指针走一步知道遍历完结点,重点是分清题 ...
- 近期学习docker遇到的一些问题
最近看某谷的springboot视频,看到了docker部分,在实践过程中遇到了一些问题 默认国外镜像,下载软件很慢 linux内核版本过低,与docker运行不匹配 这里记录一下解决方案 第一个问题 ...
- VMware Workstation 12 Pro安装CentOs图文教程(超级详细)
本文记录了VMware Workstation 12 Pro安装CentOs的整个过程,具体如下: VMware Workstation 12: CENTOS 6.4 : 创建虚拟机 1.首先安装好V ...
- git生成ssh公钥方法--远程连接github仓库
先配置全局的用户名和邮箱 $ git config --global user.name "runoob" $ git config --global user.email tes ...
- H5自定义属性data-*
data属性的设置和读取方式: 1.data-xxx 的格式,则采用正常格式来读写该属性值 <div id="test" data-name="小明"&g ...
- android O 打开设置->声音->“点按时震动问题”
主要原因是和导航栏和屏幕最下方3个按键的属性配置有关,因为在PhoneWindowManager中调用方法performHapticFeedbackLw(null, HapticFeedbackCon ...
- DZY Loves Math 系列详细题解
BZOJ 3309: DZY Loves Math I 题意 \(f(n)\) 为 \(n\) 幂指数的最大值. \[ \sum_{i = 1}^{a} \sum_{j = 1}^{b} f(\gcd ...
- 【BZOJ5492】[HNOI2019]校园旅行(bfs)
[HNOI2019]校园旅行(bfs) 题面 洛谷 题解 首先考虑暴力做法怎么做. 把所有可行的二元组全部丢进队列里,每次两个点分别向两侧拓展一个同色点,然后更新可行的情况. 这样子的复杂度是\(O( ...
- 【BZOJ5496】[十二省联考2019]字符串问题(后缀树)
[BZOJ5496][十二省联考2019]字符串问题(后缀树) 题面 BZOJ 洛谷 题解 首先显然可以把具有支配关系的串从\(A\)到\(B\)连一条有向边,如果\(B_i\)是\(A_j\)的前缀 ...