leetcode-java.T009_PalindromeNumber 回文数字

来源:互联网 发布:足球数据分析软件 编辑:程序博客网 时间:2024/05/29 15:20

每天坚持刷leetcode----回文数字

package leetcode.T009_PalindromeNumber;/**    * @Title: Solution.java  * @Package leetcode.T009_PalindromeNumber  * @Description: *******  * @author zhouzhixiang   * @date 2017-6-3 下午10:41:29  * @version V1.0    */public class Solution {/**     * <pre>     * 原题     * Determine whether an integer is a palindrome. Do this without extra space.     *     * 题目大意     * 判断一个数字是否是回访字数,不要使用额外的空间。     *     * 解题思路     * 为了不使用额外的空间,参考了其它的解决,那些解法看起来在isPalindrome方法中没有使用额外参数,     * 但是却使用了方法调用,这个比一个整数消耗的空间更多 ,并没有达到题目的要求,是假的实现,     * 所以本题依然采用一个额外的空间进行实现。     *  首先,负数不是回文数字,其次对数字进行逆转,123变成321这样,如果变换后的数字相等说明是回文数字。     * </pre>     *     * @param x     * @return     */public static void main(String[] args) {//System.out.println(new Solution().isPalindrome(-1211));System.out.println(new Solution().isPlindrome2(1111101));}// 参考public boolean isPlindrome2(int x){// 如果为负数if(x<0){return false;}// 防止数字逆转后的值溢出,采用longlong reverse = 0;int tmp = x;while(tmp!=0){reverse = reverse*10 + tmp%10;tmp /= 10;}return x == reverse;}/*** @Title: isPalindrome * @Description: daniel* @param @param x* @param @return    * @return boolean    * @throws */public boolean isPalindrome(int x){    boolean flag = false;int len = 0;char sFirst = ' ';char sLast = ' ';// 如果为负数,则直接返回falseif(x<0){return flag;}// 转成字符串String str = String.valueOf(x);len = str.length();if(len>0){for(int i=0; i<len; i++){sFirst = str.charAt(i);sLast = str.charAt(len-i-1);// 判断后一位和对应的前一位是否相等if(sFirst == sLast){flag = true;}else{flag = false;return flag;}}if(flag){return flag;}}return flag;}}


阅读全文
0 0
原创粉丝点击