• NYOJ915——+-字符串


    +-字符串

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:1
     
    描述
    Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号和它相邻的减号交换。他想知道最少需要多少次操作才能把第一个字符串变换成第二个字符串。你现在要去帮助他完成那个这个问题。
     
    输入
    多组测试数据

    每组数据有两行,每行包含一个由”+”和”-“最成的字符串。每个子符串长度不超过5000。
    输出
    仅一个整数,输出最少需要操作的次数。如果答案不存在,输出-1。
    样例输入
    ++-+--+ 
    -++--++ 
    样例输出
    4
     1 #include<stdio.h>
     2 #include<string.h>
     3 int main()
     4 {
     5     char a[5000],b[5000];
     6     int i,j,n,c=0,d=0,e=0,f=0;
     7     char t;
     8     while(scanf("%s %s",a,b)!=EOF)
     9     {
    10         n=0;
    11         getchar();
    12         c=strlen(a);
    13         d=strlen(b);
    14         if(c!=d)//判断两个字符串长度是不是相等
    15         {
    16             printf("-1
    ");
    17             continue;
    18         }
    19         for(i=0;i<c;i++)
    20         {
    21             if(a[i]=='+')//得到a数组中+号个数
    22             {
    23                 e++;
    24             }
    25             if(b[i]=='+')//得到b数组中+号个数
    26             {
    27                 f++;
    28             }
    29         }
    30         if(e!=f)//判断两个数组中+号个数是不是相等
    31         {
    32             printf("-1
    ");
    33             continue;
    34         }
    35         for(i=0;i<c-1;i++)
    36         {
    37             if(a[i]==b[i])//看对应位置上字符是否相等
    38             {
    39                 continue;
    40             }
    41             for(j=i;j<c-1;j++)//当对应位置上字符不等时,需要进行交换操作
    42             {
    43                 n++;
    44                 if(b[i]==b[j+1])//b相邻位置上字符相等
    45                 {
    46                     continue;
    47                 }
    48                 else//b数组字符交换
    49                 {
    50                     t=b[i];
    51                     b[i]=b[j+1];
    52                     b[j+1]=t;
    53                     break;
    54                 }
    55             }
    56         }
    57         printf("%d
    ",n);
    58     }
    59     return 0;
    60 }
    心之所向,素履以往
  • 相关阅读:
    数据恢复:解决ORA600[kghstack_free2][kghstack_err+0068]一例
    Oracle latch闩原理示意图
    MySQL Query Analyzer查询分析器
    Oracle GoldenGate Monitor架构图
    Oracle Row cache lock图解
    没有Metalink账号的同学可以观赏下,My Oracle Support的主界面
    Oracle Goldengate Director软件截面图
    Oracle Unbreakable Enterprise Kernel Faster than Redhat?
    从Win32过渡到MFC
    naked 函数调用
  • 原文地址:https://www.cnblogs.com/yinbiao/p/8120253.html
Copyright © 2020-2023  润新知