回文判断
如:aba 就是个回文.
- #include<iostream>
- #include<string>
- using namespace std;
- string str = "";
- string HuiWen_str = "";
- void Huiwen(){
- char c;
- cin>>c;
- if('#' == c)return;
- str +=c;
- Huiwen();
- HuiWen_str+=c;//回溯 从尾部开始加
- }
- int main(){
- while(1){
- cout<<"输入:";
- Huiwen();
- if(str == HuiWen_str)
- cout<<str<<" 是回文"<<endl;
- else
- cout<<str<<" 不是回文"<<endl;
- str = "";
- HuiWen_str = "";
- }
- system("pause");
- }
类似的问题,比如反转字符串,输入abcdefg,输出gfedcba.
可以用很多方法实现,在不知道输入字符串长度的情况下可以用回溯法实现很简单,
code:
- #include<iostream>
- using namespace std;
- void Reverse(){
- char c;
- cin>>c;
- if('#' == c)return;
- Reverse();
- cout<<c; //开始输出反向字符串
- }
- int main(){
- Reverse();
- system("pause");
- return 0;
- }