回文数-lintcode-c++

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Gary_god/article/details/77804124

准备知识
1.sprintf函数
sprintf 最常见的应用之一是把整数打印到字符串中。例如把整数123 打印成一个字符串保存在s 中,sprintf(s, “%d”, 123); //产生”123”
2.c++格式化输出

cout<<dec<<a<<endl; //以十进制形式输出整数
  cout<<hex<<a<<endl; //以十六进制形式输出整数a
  cout<<setbase(8)<<a<<endl; //以八进制形式输出整数a
  char *pt="China"; //pt指向字符串"China"
  cout<<setw(10)<<pt<<endl; //指定域宽为,输出字符串
  cout<<setfill('*')<<setw(10)<<pt<<endl; //指定域宽,输出字符串,空白处以'*'填充

%d表示十进制有符号整数,printf(”a=%d\n”, a); /结果输出十进制整数a=1234/
题目
判断一个正整数是不是回文数。

回文数的定义是,将这个数反转之后,得到的数仍然是同一个数。
思路
将数字转化为字符串,然后进行首尾比较。注意如何转换,首先是利用sprintf将数字转化为char[],因为要获取长度所以还必须转化为string.
代码

class Solution {
public:
    /*
     * @param num: a positive number
     * @return: true if it's a palindrome or false
     */
    bool isPalindrome(int num) {
        // write your code here
        char s[33];
        sprintf(s,"%d",num);
        string str(s);
        for(int i=0;i<str.size()/2;i++){
            if(str[i]!=str[str.size()-1-i])
            return false;
        }
    return true;

    }
};
展开阅读全文

没有更多推荐了,返回首页