• 10月20日 字符串展开


    题目

    分析

          枚举‘-’号位置就好了

    代码

     1 #include<iostream>
     2 using namespace std;
     3 int main ()
     4 {
     5     int p1,p2,p3;
     6     cin>>p1>>p2>>p3;
     7     string s,c;
     8     cin>>s;
     9     int kk=0;
    10     for (int i=0;i<s.size();i++)
    11       if (s[i]=='-')
    12       {
    13           c+=s[i];
    14           kk=i+1;
    15       }
    16       else break;
    17     for (int i=kk;i<s.size();i++)
    18     {
    19         if (s[i]!='-')
    20           c+=s[i];
    21         else
    22         {
    23             if (s[i+1]=='-')
    24             {
    25                 c+="--";
    26                 i++;
    27                 continue;
    28             }
    29             if (s[i+1]<=s[i-1]||(s[i-1]>='0'&&s[i-1]<='9'&&s[i+1]>'9'))
    30             {
    31                 c+='-';
    32                 continue;
    33             }
    34             if (s[i-1]+1==s[i+1])
    35                continue;
    36             int a=s[i-1],b=s[i+1];
    37             string t;
    38             if (p1==1)
    39             {
    40                 if (a>='A'&&a<='Z')
    41                    a=a-'A'+'a';
    42                 if (b>='A'&&b<='Z')
    43                    b=b-'A'+'a';
    44                 for(int i=a+1;i<b;i++)
    45                   for (int j=1;j<=p2;j++)
    46                     t+=i;
    47             }
    48             if (p1==2)
    49             {
    50                 if (a>='a'&&a<='z')
    51                   a=a-'a'+'A';
    52                 if (b>='a'&&b<='z')
    53                   b=b-'a'+'A';
    54                 for(int i=a+1;i<b;i++)
    55                   for (int j=1;j<=p2;j++)
    56                     t+=i;
    57                 
    58             }
    59             if (p3==2)
    60             {
    61                 string tt;
    62                 for (int i=t.size()-1;i>=0;i--)
    63                    tt+=t[i];
    64                 t=tt;
    65             }
    66             if (p1==3)
    67             {
    68                 if (a>='a'&&a<='z')
    69                   a=a-'a'+'A';
    70                 if (b>='a'&&b<='z')
    71                   b=b-'a'+'A';
    72                 for(int i=a+1;i<b;i++)
    73                   for (int j=1;j<=p2;j++)
    74                     t+='*';
    75             }
    76             c+=t;
    77         }
    78     }
    79     cout<<c;
    80 }
    为何要逼自己长大,去闯不该闯的荒唐
  • 相关阅读:
    docker映射端口无法访问
    Tomcat日志分析
    linux服务器性能测试
    mysql库表结构对比工具
    网络基础知识,不懂看这里
    Python之redis、mysql进程守护
    linux文件查找工具
    nginx解决跨域问题
    redis插入单个较大的键值
    linux系统安全巡检脚本
  • 原文地址:https://www.cnblogs.com/zjzjzj/p/9860792.html
Copyright © 2020-2023  润新知