• C#习题二/学习


    题目2:对任意一个字符串进行加1运算,逢10到A,逢Z到0进1, 例:9+1=A;19+1=1A,1A+1=1B,1Z+1=20

    反思:未能一次性做出,出现了输入1位字符、输入“ZZZ”数组越界的问题,后续增增删删将原本清晰的代码结构打乱,虽然最终解决,但是程序也臃肿凌乱了。造成这种结果的原因是:我对于程序的考虑不周密,对特殊情况不敏感,没有在头脑中设计出严密程序就开始敲代码,今后要切记,写代码只是将解决方案用计算机语言翻译出来的过程,真正要花功夫的是在敲代码之前对程序的构建!

    涉及到的语法知识:

    1、 将字符串string转化为字符数组的方法:

    a)   变量.ToCharArray();  返回值为字符数组即char[] cStr = str.ToCharArray();

    2、 改变string的方法:

    a)   str = new string(cStr); 将 System.String 类的新实例初始化为由 Unicode 字符数组指示的值。

    b)   Replace(s1,s2):对字串中的s1用s2进行替换。

     

     1 static void PrintTowSolution()
     2         {
     3             string str = Console.ReadLine();
     4             int last = str.Length - 1;
     5             char end = str[last];
     6             char[] cStr = str.ToCharArray();
     7             bool flag = true, over=false;
     8             if (last == 0)
     9             {
    10                 if (end =='Z')
    11                 {
    12                     string a = "10";
    13                     cStr = a.ToCharArray();
    14                 }
    15                 else if(end=='9')
    16                 {
    17                     cStr[0] = 'A';
    18                 }
    19                 else
    20                 {
    21                     cStr[0]++;
    22                 }
    23             }
    24             while (flag && last!=0)
    25             {
    26                 flag = false;
    27                 if (end == '9') //如果最后一个字符是9 逢9变A
    28                 {
    29                     cStr[last] = 'A';
    30                 }
    31                 else if (end == 'Z') //如果最后一个字符是Z 逢Z变0进1,分两种情况讨论
    32                 {
    33                    
    34                     cStr[last] = '0';  //变0
    35                     if (last == 1 && cStr[last - 1] == 'Z')
    36                     {
    37                         cStr[last-1] = '0';
    38                         over = true;
    39                         break;
    40                     }
    41                     if (cStr[last-1]=='Z') //如果前一位是Z的话 ,前一位也要变0进1,则启动下次循环,再作处理
    42                     {
    43                         flag = true;
    44                
    45                     }
    46                     else if(cStr[last - 1] == '9')//如果前一位是9的话则变A
    47                     {
    48                         cStr[last - 1] = 'A';
    49                     }
    50                     else //如果前一位不是Z在进1
    51                     {
    52                         cStr[last - 1]++;
    53                     }
    54                 }
    55                 else
    56                 {
    57                     cStr[last]++;
    58                 }
    59                 last--;
    60                 end = str[last];
    61             }
    62             if(over==false)
    63             {
    64                 str = new string(cStr);
    65                 Console.WriteLine(str);
    66             }
    67             else
    68             {
    69                 str = new string(cStr);
    70                 Console.WriteLine("1"+str);
    71             }
    72         }
    73 }
  • 相关阅读:
    个人WPF快速入门笔记 基础样式篇02
    个人WPF快速入门笔记 基础布局篇01
    nginx常用笔记备忘
    【leetcode】1685. Sum of Absolute Differences in a Sorted Array
    【leetcode】1696. Jump Game VI
    【leetcode】1694. Reformat Phone Number
    【leetcode】1684. Count the Number of Consistent Strings
    【leetcode】1695. Maximum Erasure Value
    【leetcode】1671. Minimum Number of Removals to Make Mountain Array
    【leetcode】1689. Partitioning Into Minimum Number Of DeciBinary Numbers
  • 原文地址:https://www.cnblogs.com/wu199723/p/11536958.html
Copyright © 2020-2023  润新知