125.验证回文串
创始人
2025-05-28 10:11:24

题目描述

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。

字母和数字都属于字母数字字符。

给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false 。

示例 1:

输入: s = “A man, a plan, a canal: Panama”
输出:true
解释:“amanaplanacanalpanama” 是回文串。
示例 2:

输入:s = “race a car”
输出:false
解释:“raceacar” 不是回文串。
示例 3:

输入:s = " "
输出:true
解释:在移除非字母数字字符之后,s 是一个空字符串 “” 。
由于空字符串正着反着读都一样,所以是回文串。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/valid-palindrome

题解

package simple;
import java.util.*;
public class Solution125 {//验证回文串,1.遍历字符串,/**遇到大写字母,转化成小写,* 遇到非字符非字母,移除,* 维护一个新的数组,将满足条件的存到数组里,注意数组是可变数组* 在ascii码中,小写字母-大写字母=32* 0-9的ascii是48-57* */public static boolean isPalindrome(String s){int len=s.length();s=s.toLowerCase();//char []ans=new char[len];List ans=new ArrayList();int k=0;for(int i=0;iif(s.charAt(i)<='z'&&s.charAt(i)>='a'){ans.add(s.charAt(i));k++;}if(s.charAt(i)-'0'>=0&&s.charAt(i)-'0'<=9){ans.add(s.charAt(i));k++;//注意这里不要遗漏}}//判断数组是否是回文串,对称相等,最后一个数和第一个数是否相等int n=0,m=k-1;while(nif(ans.get(n)==ans.get(m)){n++;m--;}else{return false;}}return true;}public static void main(String[] args) {Scanner scan=new Scanner(System.in);String str=scan.nextLine();boolean result=isPalindrome(str);System.out.println(result);}
}

相关内容

热门资讯

今年我省粮食产量达515.56... (来源:辽宁日报)转自:辽宁日报 图为在中储粮(盘锦)储运有限公司,装运粮食的重型卡车排起长队...
国家发展改革委部署促进投资止跌... (来源:辽宁日报)转自:辽宁日报 新华社北京12月13日电 (记者魏玉坤) 记者13日从全国发展和改...
江苏省实施《中华人民共和国森林... (来源:新华日报) 目 录 第一章 总则 第二章 森林、林木和林地权属管理...
姜堰数字化产品讲“活”理论 (来源:新华日报) □ 本报记者 卢佳乐 通讯员 姜宣 “王教授,您约我‘喝茶论道’,...
联合国维和部队在苏丹遇袭 6人... 转自:财联社【联合国维和部队在苏丹遇袭 6人死亡】财联社12月14日电,当地时间13日,苏丹武装部队...