力扣(LeetCode)125. 验证回文串

Posted lick

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣(LeetCode)125. 验证回文串相关的知识,希望对你有一定的参考价值。

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:

输入: "A man, a plan, a canal: Panama"
输出: true

示例 2:

输入: "race a car"
输出: false

java知识点

Java 字符串拼接,推荐使用StringBuilder

String 本身没有反转函数 ,但是StringBuilder有 reverse()

String s = "abcd";

StringBuilder builder = new StringBuilder(s);

System.out.println(builder.reverse().toString()); // 输出 dcba

Java版

class Solution {
    public boolean isPalindrome(String s) {
        s = s.toLowerCase(); //全部转换为小写
        // 使用String 拼接,如果单词太多的话,会提示时间超时,使用StringBuilder就不会。
        StringBuilder builder = new StringBuilder();
        int i,len = s.length();
        //变成只有小写字母和数字的字符串
        for(i=0;i<len;i++) {
            char c = s.charAt(i);
            if((c>=\'0\' && c<=\'9\') || (c>=\'a\' && c<=\'z\')) {
                builder.append(c);
            }
        }
        return builder.toString().equals(builder.reverse().toString());
    }
}

C语言知识点

C语言 strlen() tolower() toupper()

char c[]="aBc";

int len = strlen(c); // len长为3

tolower(c); // "aBc" 变成 "abc"

toupper(c); // "aBc" 变成 "ABC"

C语言版

bool isPalindrome(char* s) {
    int i,k=0,len =strlen(s);
    char *ss = (char *)malloc(sizeof(char)*len);
    //拼接一个只有小写字母和数字的字符串
    for(i=0;i<len;i++) {
        if((s[i]>=\'0\' && s[i]<=\'9\') || (tolower(s[i])>=\'a\' && tolower(s[i])<=\'z\' )) {
            ss[k++]=tolower(s[i]);
        }
    }
    //判断是否回文
    for(i=0;i<k/2;i++) {
        if(ss[i]!=ss[k-i-1]) {
            return false;
        }
    }
    return true;
}

运行结果

以上是关于力扣(LeetCode)125. 验证回文串的主要内容,如果未能解决你的问题,请参考以下文章

力扣算法:125-验证回文串,131-分割回文串---js

LeetCode 0125. 验证回文串

LeetCode第125题—验证回文串—Python实现

leetcode-----125. 验证回文串

力扣(LeetCode)验证回文串 个人题解(C++)

前端与算法 leetcode 125. 验证回文串