网站开发合同编号如何编写,字体如何安装 wordpress,美食网站建设背景,网站核验点查询题目链接 剑指 Offer II 018. 有效的回文 easy 题目描述
给定一个字符串 s#xff0c;验证 s是否是 回文串 #xff0c;只考虑字母和数字字符#xff0c;可以忽略字母的大小写。
本题中#xff0c;将空字符串定义为有效的 回文串 。
示例 1: 输入: s “A man, a plan, …题目链接 剑指 Offer II 018. 有效的回文 easy 题目描述
给定一个字符串 s验证 s是否是 回文串 只考虑字母和数字字符可以忽略字母的大小写。
本题中将空字符串定义为有效的 回文串 。
示例 1: 输入: s “A man, a plan, a canal: Panama” 输出: true 解释“amanaplanacanalpanama” 是回文串 示例 2: 输入: s “race a car” 输出: false 解释“raceacar” 不是回文串 提示 :
1s.length2∗1051 s.length 2 * 10^51s.length2∗105字符串 s由 ASCII字符组成
分析
先把合法字符转成小写 加到 s中。
用两个指针判断是否是回文串即可。
时间复杂度O(n)O(n)O(n)
C代码
class Solution {
public:bool isPalindrome(string ss) {string s;for(auto c:ss){if(isalnum(c)) s tolower(c);}int n s.size();for(int i 0,j n - 1;i j;i,j--){if(s[i] ! s[j]) return false;}return true;}
};Java代码
class Solution {public boolean isPalindrome(String ss) {StringBuilder sb new StringBuilder();for(var c:ss.toCharArray()){if(Character.isLetterOrDigit(c)) sb.append(Character.toLowerCase(c));}int n sb.length();for(int i 0,j n - 1;i j;i,j--){if(sb.charAt(i) ! sb.charAt(j)) return false;}return true;}
}