pragma mark - - 栈 排序
/*
回文数:左右对称的数即为回文数,例如:ahcha是回文数,acca 也是回文数,但ahah 不是回文数,请问:acdac 是回文数?
*/
/*
栈:后进先出 入栈top++ s[top]=x,出栈top--
*/
-(void)zhanSort {
NSString *TempString = @"acaa";
char a[100];
char s[100];
NSInteger top=0;
// 转成char 数组
memcpy(a, [TempString cStringUsingEncoding:NSASCIIStringEncoding], 2*[TempString length]);
// char 数组 长度
NSInteger length = strlen(a);
// mid 中间数
NSInteger mid = length/2;
// 入栈 mid之前的数 top++ top从1开始入值
for (NSInteger i=0; i<mid; i++) {
top++;
s[top] =a[i];
}
NSLog(@"s:%s",s);
// 比较 mid后第一个需要比较的数
NSInteger next=0;
if (length%2 == 0) {
next=mid;
}else {
next=mid+1;
}
// 比较 出栈 top-- top为0 出栈成功
for (NSInteger i=next; i<length; i++) {
if (a[i]==s[top]) {
top--;
}else {
break ;
}
}
if (top==0) {
NSLog(@"是回文数");
}else {
NSLog(@"不是回文数");
}
}