LeetCode 125. Valid Palindrome-回文字符串判断

标签: LeetCode 125. Valid Palindrome JAVA
11人阅读 评论(0) 收藏 举报
分类:

题目

题目的意思是,判断一个字符串是否是回文字符串,只考虑字母和数字,忽略大小写。

此处将空字符串定义为回文字符串,即如果一个字符串只有非字母和非数字,也是回文字符串。eg:!%^^^^%%,是一个回文字符串。

思路及实现

  • 使用JVA中char的工具类Character进行字符串的操作,其中使用到的方法作用
//方法 isLetterOrDigit(char ch) 确定指定字符是否为字母或数字。
//charAt(int index) 返回指定索引处的 char 值。
//toLowerCase(char ch) 使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为小写。
  • 判断字符串是否是回文的方法实现如下
/**
     * 判断是否是回文的方法
     * 题目规定空字符串也是回文,如果一个字符串只有非字母和非数字的字符,也是回文字符串
     * @param s
     * @return
     */
    public boolean isPalindrome(String s) {
        int i = 0;
        int j = s.length() - 1;

        while (i < j) {
            //嵌套一层循环,用以跳过非数字、非字母的字符
            //这里需要再次判断i是否小于j,因为while循环对i值做了更新,外层循环的i<j不一定成立了,如果j <= i,跑过了
            while (!Character.isLetterOrDigit(s.charAt(i)) && i < j) {
                i++;
            }
            while (!Character.isLetterOrDigit(s.charAt(j)) && i < j) {
                j--;
            }

            //遇到i和j指向的字母数字不相等,即不构成回文,返回false,循环结束
            if (Character.toLowerCase(s.charAt(i)) != Character.toLowerCase(s.charAt(j))) {
                return false;
            }

            i++;
            j--;
        }
        return true;
    }

小知识大道理,一点一滴积累。给点个赞吧微笑

(个人微信公众号:TestOnTheRoad,搜索ID或者扫描下方二维码添加关注,关注测试开发工程师的成长之路


查看评论

<LeetCode>125.Valid Palindrome 验证回文字符串 Tag:string

本文内容参考: ①Grandyang 的博客 http://www.cnblogs.com/grandyang/p/4030114.html ② 九章算法的LeetCode参考答案 ...
  • gsafjhbfqwergerkbvgk
  • gsafjhbfqwergerkbvgk
  • 2017-04-26 12:53:05
  • 148

leetcode-125. Valid Palindrome(验证含有标点符号String是否为回文串)

https://leetcode.com/problems/valid-palindrome/#/description问题描述:指定含有标点符号空格的字符串,判断是否为回文串。思路解析: [^A-...
  • u013275928
  • u013275928
  • 2017-06-18 23:00:38
  • 148

LeetCode125——Valid Palindrome

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori...
  • booirror
  • booirror
  • 2015-01-27 18:05:48
  • 2520

leetcode 125 Valid Palindrome C++

这个题我用了两个函数,导致很简单。 toupper变成大写。 isalnum   判断是不是数字和字母 bool isPalindrome(string s) { if(...
  • a2331046
  • a2331046
  • 2016-06-28 14:57:05
  • 173

[leetcode-125]Valid Palindrome(c++)

问题描述: Given a string, determine if it is a palindrome, considering only alphanumeric characters and...
  • zdavb
  • zdavb
  • 2015-08-12 16:07:15
  • 353

leetcode 判断有效字符串是回文串Valid Palindrome

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori...
  • yanerhao
  • yanerhao
  • 2015-08-12 09:58:09
  • 490

Leetcode-680. Valid Palindrome II(判断回文)

题目大意:给定一个非空字符串s,您最多可以删除一个字符。判断你是否能把它变成一串“回文”。 题目解析:最开始用的暴力,结果超时了,换用递归 解题代码: class Solution { publ...
  • zsheng_
  • zsheng_
  • 2017-10-05 10:37:23
  • 208

LeetCode Valid Palindrome(验证回文字符串)

题目: 给定一个字符串,判断其中包含数字和字母的部分是否是回文字符串(忽略大小写),即判断该字符串是不是正向和反向读取的结果一致。 解题思路: 本题的解题方法比较暴力直接,先遍历一遍字符串,将字...
  • xiaoxiaoley
  • xiaoxiaoley
  • 2017-09-24 11:06:00
  • 162

LeetCode 125:Valid Palindrome(c++)

一:题目 Given a string, determine if it is a palindrome, considering only alphanumeric characters and i...
  • u010059070
  • u010059070
  • 2017-06-21 08:33:24
  • 131

【LeetCode-面试算法经典-Java实现】【125-Valid Palindrome(回文字验证)】

【125-Valid Palindrome(回文字验证)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a string, determine if it i...
  • DERRANTCM
  • DERRANTCM
  • 2015-08-14 06:18:42
  • 2643
    个人资料
    等级:
    访问量: 4759
    积分: 92
    排名: 141万+
    文章存档
    最新评论