zoukankan      html  css  js  c++  java
  • 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 }
    心之所向,素履以往
  • 相关阅读:
    subtext 安装PythonIDE -Anaconda
    Python--DBUtil
    python操作oracle数据库-查询
    Python 离线工作环境搭建
    Scrapy-下载中间件
    centos安装 Anaconda3及使用
    Scrapy爬取人人网
    海明距离
    中心极限定理
    最大似然估计 (MLE)与 最大后验概率(MAP)在机器学习中的应用
  • 原文地址:https://www.cnblogs.com/yinbiao/p/8120253.html
Copyright © 2011-2022 走看看