1.题目

在这里插入图片描述

2.思路

通过正则表达式去除标点符号,再用toLowerCase()把字母转换成小写字母。最后当左指针不等于右指针的时候比较前后元素的值,用反证法,如果不想等直接return false,左指针左移,右指针右移。在这里插入图片描述

3.代码实现

class Solution {
    public boolean isPalindrome(String s) {
        // String s1 = s.replaceAll("\\p{P}+", "");
         String t = s.replaceAll("[^A-Za-z0-9]+", "").toLowerCase();
        int left=0;
        int right=t.length()-1;  
           while(left<right)
           {
            if(t.charAt(left)!=t.charAt(right))
            return false;
            left++;
            right--;
           }
              return true;

        }
     
      
        
    }

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐