由于总是写业务,基础都忘得干干净净了,所以先以写业务的思维去刷leetCode。当然,时间和空间肯定惨不忍睹,后面慢慢优化。
先看看,leetCode125.验证回文串的需求prd:
需要花点时间理解的就是回文串的定义是什么。
“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。(摘自百度百科)
题目还帮我们简化了难度,去除了符号、中文等干扰项,那么就简单了。
只要我们将能够正序和倒序的字符串比较后相等,那么就搞定了。
code:
public static boolean isPalindrome(String s) {
//31 ms 9.58% 40 MB 5.02%
//step1.转义字符去除符号,转换小写
String result = s.replaceAll("[^a-zA-Z0-9]","").toLowerCase();
//step2.倒序排序的字符串
StringBuffer stringbuffer =new StringBuffer(result).reverse();
//step3.判断
return result.equals(stringbuffer.toString()) ? true : false;
}
一味的追求业务方便的结果就是时间和空间的耗费,有时间的话后面再从源码分析一下,最耗时和耗内存的部分。
这用时和内存消耗就很离谱,大家引以为戒。