这是悦乐书的第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+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。
以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!
来源:https://www.cnblogs.com/xiaochuan94/p/10140058.html