A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. /**
  2. *3.判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
  3. */

  4. #import <Foundation/Foundation.h>

  5. //1.定义一个isSymmetricString函数用于判定传入的NSString类型的字符串是否为对称字符串
  6. BOOL isSymmetricString(NSString *string)
  7. {
  8.     //1.定义一个整型变量 length 用于接受字符串的长度值
  9.     NSInteger length = string.length;
  10.    
  11.     //2.定义两个整型变量 pointerFirst pointerLast作为字符串头尾的索引值
  12.     NSInteger pointerFirst = 0;
  13.     NSInteger pointerLast = length - 1;
  14.    
  15.     //3.定义两个字符变量 用于存放字符串头尾的字符
  16.     char charFirst = [string characterAtIndex:pointerFirst];
  17.     char charLast = [string characterAtIndex:pointerLast];
  18.    
  19.     //4.循环依次遍历字符串 如果头字符和尾字符相等,则头字符索引加1 尾字符减1
  20.     //  如果比较中有头字符和尾字符不相等 说明不是对称字符串 返回NO
  21.     //  如果一直头字符和尾字符一直相等 直到 头字符索引大于或者等于尾字符索引,则该字符串为对称字符串 返回YES
  22.    
  23.     //原题目中没有针对一个字符的字符串是否为对称字符串下定义,还有是否可以用数字字符或者特殊字符的字符串
  24.     //所以本程序中 我默认一个字符的字符串为对称字符串,还有数字字符和特殊字符与字母字符一样处理
  25.    
  26.     while(charFirst == charLast)
  27.     {
  28.         //4.1每经过一轮比较 头字符索引加1 尾字符索引减1
  29.         pointerFirst ++;
  30.         pointerLast --;
  31.         
  32.         //4.2头字符索引大于或者等于尾字符索引 返回YES
  33.         if(pointerFirst >= pointerLast) return YES;
  34.     }
  35.    
  36.     //4.3有不相等字符 返回NO
  37.     return NO;
  38. }

  39. int main(int argc, const char * argv[])
  40. {

  41.     @autoreleasepool {
  42.         //5.提示用户输入一个字符串,默认字符串长度为100;
  43.         NSLog(@"请输出一个字符串 回车结束");
  44.         
  45.         //5.1定义一个长度为100的字符串
  46.         char inputString[100];
  47.         
  48.         //5.2系统输入并赋值给inputString字符串
  49.         scanf("%s",inputString);
  50.         
  51.         //6.新建一个NSString对象string并用inputString来实例化
  52.         NSString *string = [NSString stringWithUTF8String:inputString];
  53.         
  54.         //6.1新建一个NSString对象result来输出结果是YES还是NO
  55.         NSString *result = [NSString stringWithString:isSymmetricString(string)?@"YES":@"NO"];
  56.         
  57.         //7.输出结果到屏幕
  58.         NSLog(@"您输入的 %@ 为一个对称字符串的结果为 %@",string , result);
  59.         
  60.     }
  61.     return 0;
  62. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马