如何判断两个字符串是否互为回文?

举报
宇宙之一粟 发表于 2022/05/27 15:26:58 2022/05/27
【摘要】 问题描述回文,英文palindrome,如果该字符串的反转与原始字符串相同,则该字符串称为回文字符串。比如: radar、level、Able was I ere I saw Elba反转字符串与原字符串比较反转字符串或数字,并将反转的字符串或数字与原始值进行比较。package com.yuzhou1su.RelearnJava.Util;public class palindrome {...

问题描述

kevin-bhagat-zNRITe8NPqY-unsplash.jpg

回文,英文palindrome,如果该字符串的反转与原始字符串相同,则该字符串称为回文字符串。

比如: radar、level、

Able was I ere I saw Elba

反转字符串与原字符串比较

反转字符串或数字,并将反转的字符串或数字与原始值进行比较。

package com.yuzhou1su.RelearnJava.Util;

public class palindrome {

    public static void main(String[] args) {
  
      String str = "level", reverseStr = "";
      
      int strLength = str.length();
  
      for (int i = (strLength - 1); i >=0; --i) {
        reverseStr = reverseStr + str.charAt(i);
      }
  
      if (str.toLowerCase().equals(reverseStr.toLowerCase())) {
        System.out.println(str + " is a Palindrome String.");
      }
      else {
        System.out.println(str + " is not a Palindrome String.");
      }
    }
}

输出结果:level is a Palindrome String.

双指针

先把字符串转换为字符串数组,然后分别从字符串分组的前后进行遍历字符串,前后对比。

package com.yuzhou1su.RelearnJava.Util;

public class palindrome {

    public static void main(String[] args) {
  
      String str = "level";
      char[] strArray = str.toCharArray();
      
      if (isPalindrom(strArray)) {
    	  System.out.println(str + " is a Palindrome String.");
      } else {
          System.out.println(str + " is not a Palindrome String.");
      } 
    }
    
    public static boolean isPalindrom(char[] word){
        int i1 = 0;
        int i2 = word.length - 1;
        while (i2 > i1) {
            if (word[i1] != word[i2]) {
                return false;
            }
            ++i1;
            --i2;
        }
        return true;
    }
}

Python中讨巧解法

def isPalindrome(self, x: int) -> bool:
    return str(x)==str(x)[::-1]
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。