pragma mark - - 棧 排序
/*
回文數(shù):左右對(duì)稱(chēng)的數(shù)即為回文數(shù),例如:ahcha是回文數(shù)瘫里,acca 也是回文數(shù),但ahah 不是回文數(shù),請(qǐng)問(wèn):acdac 是回文數(shù)茧球?
*/
/*
棧:后進(jìn)先出 入棧top++ s[top]=x,出棧top--
*/
-(void)zhanSort {
NSString *TempString = @"acaa";
char a[100];
char s[100];
NSInteger top=0;
// 轉(zhuǎn)成char 數(shù)組
memcpy(a, [TempString cStringUsingEncoding:NSASCIIStringEncoding], 2*[TempString length]);
// char 數(shù)組 長(zhǎng)度
NSInteger length = strlen(a);
// mid 中間數(shù)
NSInteger mid = length/2;
// 入棧 mid之前的數(shù) top++ top從1開(kāi)始入值
for (NSInteger i=0; i<mid; i++) {
top++;
s[top] =a[i];
}
NSLog(@"s:%s",s);
// 比較 mid后第一個(gè)需要比較的數(shù)
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(@"是回文數(shù)");
}else {
NSLog(@"不是回文數(shù)");
}
}