本文主要是介绍LCR 018,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:LCR 018
解法:双指针
左指针指向第一个元素,右指针指向最后一个元素。两指针向中间收缩,当遇到不合法字符时跳过直到下一个合法字符
public boolean isPalindrome(String s) {int left = 0, right = s.length() - 1;while (left < right) {while (left < right && !Character.isLetterOrDigit(s.charAt(left))) left++;while (left < right && !Character.isLetterOrDigit(s.charAt(right))) right--;if (Character.toLowerCase(s.charAt(left)) != Character.toLowerCase(s.charAt(right))) return false;left++;right--;}return true;}
这篇关于LCR 018的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!