leetcode:Valid Palindrome

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

For example,
"A man, a plan, a canal: Panama" is a palindrome.
"race a car" is not a palindrome.

Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.

For the purpose of this problem, we define empty string as valid palindrome.

分析:题意为 给出一个字符串,检查它是不是一个回文的情况。判断时只考虑字母数字的字符并且忽略大小写。

注意点 1、考虑字符串为空的情况,并将其作为回文的

          2、忽略大小写的差别,比较之前先将大小写转换为一致的

          3、非字母数字字符要跳过,将它滤除,得到有效字符串

          4、对有效字符串前后相应位置进行比较判断

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class Solution { 
public
    bool isStr(char &ch){ 
        if(ch >= '0' && ch <= '9'){ 
            return true
        } else if(ch >= 'a' && ch <= 'z'){ 
            return true
        } else if(ch >= 'A' && ch <= 'Z'){ 
           ch += 32; 
           return true
        }  
           
        return false
    
       
    bool isPalindrome(string s) { 
        // Start typing your C/C++ solution below 
        // DO NOT write int main() function 
        int len = s.length(); 
        if(len == 0){ 
            return true
        
           
        string str = ""
        for(int i = 0; i < len; i++){   // remove illegal char, such as "?" "/" ... 
            if(isStr(s[i])){ 
                str += s[i]; 
            
        
           
        len = str.length(); 
        int mid = (len + 1) / 2; 
        for(int i = 0; i < mid; i++){ 
            if(str[i] != str[len - 1 - i]){     // check front and end char 
                return false
            
        
        return true
    
};

其他解法:  

posted @   小金乌会发光-Z&M  阅读(211)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示