判断回文串,判断回文数,最长回文串,回文串的个数

判断回文串

判断一个字符串是否是回文串,首先了解下它的定义“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。
所以判断是否是回文串,判断这个字符串是否对称即可。从而用两个指针同时向中间扫描即可判断。
/**
 * 判断字符串是否是回文串,即判断是否对称。 两边指针同时向中间扫描,判断是否相等,不等则证明不是回文串,返回false
 * 否则相遇退出,就是回文,返回true
 * 
 * @param s
 * @return
 */
public static boolean isPalindrome(String s) {
	int low = 0;
	int high = s.length() - 1;
	// 当字符串有奇数个字符时,不用检查中间字符
	while (low < high) {
		if (s.charAt(low) != s.charAt(high)) {
			return false;
		}
		low++;
		high--;
	}
	return true;
}

判断回文数

判断一个数字是否是回文数
首先可以想到的算法是,把数字转化成字符串,然后使用上边的算法进行判断。如果不允许转化为字符串。
分析下,回文数其实就是把当前数字颠倒,然后还是与这个数字相等的数字。
/**
  * 判断回文数,这里不考虑负数,即颠倒当前数字,判断两个数字是否相等,相等即是回文数
  *
  * @param num
  * @return
  */
  public static boolean isPalindromeNumber( int num) {
       int oldNum = num ;
       int newNum = 0;
       //颠倒数字
       while (oldNum > 0) {
          newNum = newNum * 10 + oldNum % 10;
          oldNum = oldNum / 10;
       }
       if (num ==newNum ){
          return true ;
       } else {
          return false ;
       }
  }

待续。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值