九月二十二日
将数据结构学了一下
回文数用栈和双向链表的方式都实现了一下
#include<iostream>
using namespace std;
typedef struct
{
char data[101];
int top;
}SqStack;
void InitStack(SqStack &S)
{
S.top=-1;
}
void Push(SqStack &S,char e)
{
S.data[++S.top]=e;
}
void Pop(SqStack &S,char &e)
{
e=S.data[S.top--];
}
int main()
{
int n;
cin>>n;
char a[101];
char b[101];
for(int i=0;i<n;i++)
{
cin>>a[i];
b[i]=a[i];
}
SqStack S;
InitStack(S);
for(int i=0;i<n;i++)
{
Push(S,a[i]);
}
char e;
for(int i=0;i<n;i++)
{
Pop(S,e);
a[i]=e;
}
int f=0;
for(int i=0;i<n;i++)
{
if(a[i]!=b[i])
f++;
}
if(f!=0)
{
cout<<"此字符串不是回文串";
}
if(f==0)
{
cout<<"此字符串是回文串";
}
return 0;
}
class Solution {
public:
string String(string inputString)
{
int left = 0;
int right = inputString.length() - 1;
while (left < right)
{
swap(inputString[left], inputString[right]);
left++;
right--;
}
return inputString;
}
bool isPalindrome(int x) {
std::string a = std::to_string(x);
std::string b = a;
b=String(a);
if(a==b)
{
return true;
}
else
{
return false;
}
}
};

浙公网安备 33010602011771号