网站建设:什么是网站开发与建设
web/
2025/9/29 9:03:13/
文章来源:
网站建设:,什么是网站开发与建设,展馆公司,遮罩层怎么做网页1.题目
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后#xff0c;短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。
字母和数字都属于字母数字字符。
给你一个字符串 s#xff0c;如果它是 回文串 #xff0c;返回 true #xff1b;否…1.题目
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。
字母和数字都属于字母数字字符。
给你一个字符串 s如果它是 回文串 返回 true 否则返回 false 。
2.示例 3.思路
双指针
先将字符串通过String的LowerCase方法让字符串所有字符变为小写字符再通过设置头尾两个指针放置于字符串的头尾在遍历字符串时候头尾指针先进行遍历找到合法字符通过方法Character.isLetterOrDigit方法就能识别该字符是否合法进行比较。举例来说比如一个字符串
“a ) s a ” 那么头尾指针第一个找到的就是a进行比较如果相等则头尾指针往中心靠拢一格直到指针相等或者头指针小于尾部指针
4.代码
LeetCode代码
class Solution {public boolean isPalindrome(String s) {String str s.toLowerCase();int pre 0;int Des str.length() - 1;while (pre Des) {while (pre Des !Character.isLetterOrDigit(str.charAt(pre))) {pre;}while (pre Des !Character.isLetterOrDigit(str.charAt(Des))) {Des--;}if (str.charAt(pre) ! str.charAt(Des)) {return false;}pre;Des--;}return true;}
} 总结时间复杂度为O(n) 空间复杂度为 O(1)
详细案例代码
package LeetCode1001;public class javaDemo {public static void main(String[] args) {String s A man, a plan, a canal: Panama;
// 返回值boolean flag true;
// 将字符串转为小数String str s.toLowerCase();
// 设置头尾指针int pre0; int desstr.length()-1;while (predes){
// 在找到相应的合法字符前一直靠拢while (predes !Character.isLetterOrDigit(str.charAt(pre))){pre;}while (despre !Character.isLetterOrDigit(des)){des--;}
// 当两个指针都各就位时候则开始比较,如果字符不匹配则直接返回flaseif (str.charAt(pre)!str.charAt(des)){flag false;break;}
// 如果两个有效位都一样则继续往中间靠拢pre;des--;}
// 输出返回值System.out.println(flag);}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83809.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!