这是悦乐书的第 205 次更新, 第 217 篇原创
01 看题和准备
今天介绍的是 LeetCode 算法题中 Easy 级别的第 73 题 (顺位题号是 344). 编写一个以字符串作为输入并返回字符串的函数. 例如:
输入:"hello"
输出:"olleh"
输入:"A man, a plan, a canal: Panama"
输出:"amanaP: lanac a, nalp a, nam A"
本次解题使用的开发工具是 eclipse,jdk 使用的版本是 1.8, 环境是 win7 64 位系统, 使用 Java 语言编写和测试.
02 第一种解法
直接借助 StringBuilder 类的 reverse 方法, 将原字符串反转.
- public String reverseString(String s) {
- StringBuilder sb = new StringBuilder(s);
- return sb.reverse().toString();
- }
03 第二种解法
使用双指针, 一个从 0 开始, 一个从字符串尾部开始, 利用循环, 进行首尾字符互换.
- public String reverseString2(String s) {
- if (s == null || s.trim().length() <= 1) {
- return s;
- }
- int i = 0;
- int j = s.length()-1;
- char[] ch = s.toCharArray();
- while (i < j) {
- char temp = ch[i];
- ch[i] = ch[j];
- ch[j] = temp;
- i++;
- j--;
- }
- return new String(ch);
- }
04 小结
算法专题目前已连续日更超过两个月, 算法题文章 73 + 篇, 公众号对话框回复 [数据结构与算法] ,[算法] ,[数据结构] 中的任一关键词, 获取系列文章合集.
以上就是全部内容, 如果大家有什么好的解法思路, 建议或者其他问题, 可以下方留言交流, 点赞, 留言, 转发就是对我最大的回报和支持!
来源: http://www.jianshu.com/p/af266b75b457