黑马程序员技术交流社区
标题:
基础测试题目分享 判断一个字符串是否是对称字符串
[打印本页]
作者:
麻木
时间:
2015-4-22 09:49
标题:
基础测试题目分享 判断一个字符串是否是对称字符串
/**
*3.判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
*/
#import <Foundation/Foundation.h>
//1.定义一个isSymmetricString函数用于判定传入的NSString类型的字符串是否为对称字符串
BOOL isSymmetricString(NSString *string)
{
//1.定义一个整型变量 length 用于接受字符串的长度值
NSInteger length = string.length;
//2.定义两个整型变量 pointerFirst pointerLast作为字符串头尾的索引值
NSInteger pointerFirst = 0;
NSInteger pointerLast = length - 1;
//3.定义两个字符变量 用于存放字符串头尾的字符
char charFirst = [string characterAtIndex:pointerFirst];
char charLast = [string characterAtIndex:pointerLast];
//4.循环依次遍历字符串 如果头字符和尾字符相等,则头字符索引加1 尾字符减1
// 如果比较中有头字符和尾字符不相等 说明不是对称字符串 返回NO
// 如果一直头字符和尾字符一直相等 直到 头字符索引大于或者等于尾字符索引,则该字符串为对称字符串 返回YES
//原题目中没有针对一个字符的字符串是否为对称字符串下定义,还有是否可以用数字字符或者特殊字符的字符串
//所以本程序中 我默认一个字符的字符串为对称字符串,还有数字字符和特殊字符与字母字符一样处理
while(charFirst == charLast)
{
//4.1每经过一轮比较 头字符索引加1 尾字符索引减1
pointerFirst ++;
pointerLast --;
//4.2头字符索引大于或者等于尾字符索引 返回YES
if(pointerFirst >= pointerLast) return YES;
}
//4.3有不相等字符 返回NO
return NO;
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
//5.提示用户输入一个字符串,默认字符串长度为100;
NSLog(@"请输出一个字符串 回车结束");
//5.1定义一个长度为100的字符串
char inputString[100];
//5.2系统输入并赋值给inputString字符串
scanf("%s",inputString);
//6.新建一个NSString对象string并用inputString来实例化
NSString *string = [NSString stringWithUTF8String:inputString];
//6.1新建一个NSString对象result来输出结果是YES还是NO
NSString *result = [NSString stringWithString:isSymmetricString(string)?@"YES":@"NO"];
//7.输出结果到屏幕
NSLog(@"您输入的 %@ 为一个对称字符串的结果为 %@",string , result);
}
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2