zoukankan      html  css  js  c++  java
  • 杭电1106 分割字符串问题

    此题的重点 在于思维的全面性

    由题意可以知道 中间的字符分割可以用5的存在来判断(这里还有注意多个5存在的情况)之后别忘了特殊情况的处理 比如初始值的确定(首字母是不是5) 已经末尾没有5的时候怎么去取值

    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    #include<string.h>
    #include<math.h>
    using namespace std;
    int main()
    {
        string s;
        int a[1001],i,j,t,sum,start,end,z;
        while(cin>>s!=NULL)//getline可以接受含有空格的输入
        {
         memset(a,0,sizeof(a));
         start=0;
         t=0;
         z=0;
         for(i=0;i<s.length();i++)
         {
          if(s[i]!='5')
          {
           start=i;
           break;
          }
         }
         for(i=start;i<s.length();i++)
         {  
          if(s[i]=='5'||i==s.length()-1)
          {
           if(s[i-1]!='5') end=i-1;

           else  if(i==s.length()-1) end=i; 
           if(s[i+1]!='5'||i==s.length()-1)
           {
               sum=0;
                z=0;
               for(j=end;j>=start;j--)
              {
                sum+=pow(10,z++)*(s[j]-'0');
              }
               a[t++]=sum;
               start=i+1;
           } 
          }
         }
         sort(a,a+t);
         for(i=0;i<t;i++)
         {
          if(i==0) cout<<a[i];
          else cout<<' '<<a[i];
         }
         cout<<endl;
        }
     return 0;
    }

    中间部分的好处理 尤其注意特殊部位的(开始 结束)的处理(也就多两个判断就好了)

  • 相关阅读:
    常用C# 6.0 常用 新特性
    VS 编译总是出现错误: "LC.EXE 已退出,代码为1"
    C# XML封装
    VS 2015秘钥
    写入Txt文本信息
    C# 7.0 新特性
    Winform 弹框增加确定按钮并点击确定后进行下一步操作
    VS 代码过长自动换行
    C# 6.0 新特性
    string::npos 是什么 c++ /STL
  • 原文地址:https://www.cnblogs.com/z1141000271/p/5379510.html
Copyright © 2011-2022 走看看