题目:
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121 输出: true
示例 2:
输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。
进阶:
你能不将整数转为字符串来解决这个问题吗?
C++代码:
bool isPalindrome(int x) {
stringstream stringstream_x;
stringstream_x << x;
string string_x = stringstream_x.str();
string string1(string_x);
reverse(string_x.begin(),string_x.end());
if (string1.compare(string_x) == 0){
return true;
} else{
return false;
}
// int x_reverse;
// stringstream stream(string_x);
// stream>> x_reverse;
}
收获:
1、C++中 int 和 string 类型转换。
int型转string型
void int2str(const int &int_temp,string &string_temp)
{
stringstream stream;
stream<<int_temp;
string_temp=stream.str(); //此处也可以用 stream>>string_temp
}
string型转int型
void str2int(int &int_temp,const string &string_temp)
{
stringstream stream(string_temp);
stream>>int_temp;
}
在C++中更推荐使用流对象来实现类型转换,以上函数在使用时需要包含头文件 #include <sstream> 。
2、C++中 判断 字符串相等。
要比较的对象是两个string,则利用函数compare()。若要比较string s1和s2则写为:s1.compare(s2),若返回值为0,则两者相等。
注意:在比较两个字符串时不能利用符号“==”,“==”符号比较的是两个字符串的地址是否相等。
3、C++中 string 反转。
使用algorithm中的reverse()函数。
int main()
{
string s = "hello";
reverse(s.begin(),s.end());
cout<<s<<endl;
return 0;
}
4、C++ STL使用。
组件 | 描述 |
---|---|
容器(Containers) | 容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等。 |
算法(Algorithms) | 算法作用于容器。它们提供了执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等操作。 |
迭代器(iterators) | 迭代器用于遍历对象集合的元素。这些集合可能是容器,也可能是容器的子集。 |