- /**
- *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;
- }
复制代码 |
|