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、大寫+32 = 小寫。2、不合格的範圍,最好是用取反,關係簡潔。
class Solution { public: bool isPalindrome(string s) { int n = s.size(); if(n == 0) return true; int i = 0; int j = n-1; while(i < j){ while(i < j && !(s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z' || s[i]>='0' && s[i]<= '9')) i++; while(i < j && !(s[j] >= 'a' && s[j] <= 'z' || s[j] >= 'A' && s[j] <= 'Z' || s[j]>='0' && s[j]<= '9')) j--; if(i >= j) return true; if(s[i] >= 'A' && s[i] <= 'Z') s[i] += 32; if(s[j] >= 'A' && s[j] <= 'Z') s[j] += 32; if(s[i] != s[j]) return false; i++; j--; } return true; } };
相關推薦
[leetcode]Valid Palindrome (判斷迴文數 C語言實現)
Valid Palindrome Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. F
LeetCode | Valid Palindrome(有效的迴文串)
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. For example,"A man, a pl
每日一題--LeetCode 125 (驗證迴文串)java
題目描述: 解題思路:先將特殊情況考慮,比如字串為空或者字串只有一個字元,然後可以將字串中的字母都轉化為大寫或小寫。自己編寫一個方法判斷該字元是否為數字字元或者為字母,再使用左右指標向中間掃描,當左右字元都為字母或數字時判斷二者是否相等,若相等繼續迴圈判斷,若不相等直接返回false。
[LeetCode] Valid Palindrome II 驗證迴文字串之二
Given a non-empty string s, you may delete at most one character. Judge whether you can make it a palindrome. Example 1: Input: "aba" Output: True
[LeetCode] Shortest Palindrome 最短迴文串
Given a string S, you are allowed to convert it to a palindrome by adding characters in front of it. Find and return the shortest palindrome you can find
[leetcode]680. Valid Palindrome II有效回文II(可至多刪一原字符)
span cti pan col rac helper code delet example Given a non-empty string s, you may delete at most one character. Judge whether you can ma
LeetCode:5. Longest Palindromic Substring(找出一個字串中最大的子迴文串)
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of sis 1000. Example 1: Input
[LeetCode] Palindrome Partitioning 拆分迴文串
Given a string s, partition s such that every substring of the partition is a palindrome. Return all possible palindrome partitioning of s. For example
LeetCode oj 409. Longest Palindrome (迴文串)
Given a string which consists of lowercase or uppercase letters, find the length of the longest palindromes that can be built with those letters. This is
Longest Palindromic Substring (最長迴文串)【面試演算法leetcode】
題目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exis
【LeetCode】 409. 最長迴文串
1.題目 給定一個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的迴文串。 在構造過程中,請注意區分大小寫。比如 “Aa” 不能當做一個迴文字串。 注意: 假設字串的長度不會超過 1010。 2.思路 建立map存放26個大小寫字母的數量; 如果該字
LightOJ - 1205:Palindromic Numbers (數位DP&迴文串)
A palindromic number or numeral palindrome is a 'symmetrical' number like 16461 that remains the same when its digits are reversed. In this problem you
【LeetCode】214. 最短迴文串 結題報告 (C++)
原題地址:https://leetcode-cn.com/problems/shortest-palindrome/ 題目描述: 給定一個字串 s,你可以通過在字串前面新增字元將其轉換為迴文串。找到並返回可以用這種方式轉換的最短迴文串。 示例 1: 輸入: "aacecaaa" 輸出
manacher演算法(最長迴文串)
這是建立部落格記錄的第一個程式碼。 題目解釋: 子串:小於等於原字串長度由原字串中任意個連續字元組成的子序列 迴文:關於中間字元對稱的文法,即“aba”(單核)、“cabbac”(雙核)等 最長迴文子串:1.尋找回文子串;2.該子串是迴文子串中
L2-008. 最長對稱子串(最長迴文串)
題目意思 求最長迴文串。 解題思路 直接用Manacher演算法,秒過,下面就一標準模板 程式碼部分 #include<iostream> #include<st
BZOJ3160: 萬徑人蹤滅(FFT,迴文自動機)
BZOJ傳送門: 解題思路: FFT在處理卷積時可以將自己與自己卷,在某一種字母上標1其他標0,做字符集次就好了。 (迴文就是直接對稱可以聯絡偶函式定義理解,根據這個性質就可以將字串反向實現字串匹配)。 最後利用容斥迴文字元2的次冪-迴文串就好了。 迴文串計數當然要回文自動機了。 程式碼:
【LeetCode】125. 驗證迴文串(Valid Palindrome)
【 英文練習 | 中文練習 】 題目描述: 給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,忽略字母的大小寫。 解題思路: 用雙指標的思想,從字串的頭部與尾部向中間移動比較。 public boolean isPalindrome(String s) { if
【LeetCode】#125驗證迴文串(Valid Palindrome)
【LeetCode】#125驗證迴文串(Valid Palindrome) 題目描述 給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字串定義為有效的迴文串。 示例 示例 1: 輸入: “A man, a plan,
LeetCode 9. Palindrome Number(迴文數)
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward. Example 1: Input: 121 O
LeetCode刷題筆記-009:palindrome number(迴文數)
題目描述: Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward. Exa