zoukankan      html  css  js  c++  java
  • 字符串合并处理

    今天是2018/7/2    老师上课要求我们做的一道题目——click here

    我的代码:

     1 #include<iostream>
     2 #include<string>
     3 using namespace std;
     4 const string helper1 = "0123456789abcdefABCDEF";
     5 const string helper2 = "084C2A6E195D3B7F5D3B7F";
     6 void change(string &s,int i,int j)
     7 {
     8     string item=s;
     9     s[i]=item[j];
    10     s[j]=item[i];
    11 }
    12 int main()
    13 {
    14     string s1,s2,s;
    15     while(cin >> s1 >> s2)
    16     {
    17         s = s1 + s2;
    18         for(int i=0;i<s.length();i+=2)
    19         {
    20             for(int j=i+2;j<s.length();j+=2)
    21             {
    22                 if(s[i]>s[j])
    23                 {
    24                     change(s,i,j);
    25                 }
    26             }
    27         }
    28         for(int i=1;i<s.length();i+=2)
    29         {
    30             for(int j=i+2;j<s.length();j+=2)
    31             {
    32                 if(s[i]>s[j])
    33                 {
    34                     change(s,i,j);
    35                 }
    36             }
    37         }
    38         for(int i = 0;i < s.length();i++)
    39         {
    40             int n = helper1.find(s[i]);
    41                 if(n != -1)
    42                     s[i] = helper2[n];
    43         }
    44         cout << s << endl;
    45     }
    46     return 0;
    47 }

    亮点在helper1和helper2的定义

    我承认我是参考的,参考代码:

     1 #include<iostream>
     2 #include<string>
     3 #include<algorithm>
     4 using namespace std;
     5 const string helper1 = "0123456789abcdefABCDEF";
     6 const string helper2 = "084C2A6E195D3B7F5D3B7F";
     7 int main()
     8 {
     9     string s1,s2,s;
    10     while(cin >> s1 >> s2)
    11     {
    12         s = s1 + s2;
    13         string str1,str2,str;
    14         for(int i = 0;i < s.length();i++)
    15         {
    16             if(i % 2 == 0)
    17                 str1 += s[i];
    18             else
    19                 str2 += s[i];
    20         }
    21         sort(str1.begin(),str1.end());
    22         sort(str2.begin(),str2.end());
    23         for(int i = 0;i < s.length();i++)
    24         {
    25             if(i % 2 == 0)
    26                 str += str1[i/2];
    27             else
    28                 str += str2[i/2];
    29         }
    30         for(int i = 0;i < str.length();i++)
    31         {
    32             int n = helper1.find(str[i]);
    33                 if(n != -1)
    34                     str[i] = helper2[n];
    35         }
    36         cout << str << endl;
    37     }
    38     getchar();
    39     return 0;
    40 }

    大家要学习的话就看参考代码吧,我就是稍微改写了一下排序,就想着锻炼一下,所以自己写了一个更挫的代码

  • 相关阅读:
    使用vue-lazyload 加载图片遇到的坑
    nvm 配置安装全局nodejs
    原生 ajax 请求
    angular5 引入第三方插件
    ionic3 组件引用报错问题
    有1到10w这个10w个数,去除2个并打乱次序,如何找出那两个数
    判断数据类型
    统计字符串有多少字节
    php
    数组 、 字符串 简单去重
  • 原文地址:https://www.cnblogs.com/luojianyi/p/9254560.html
Copyright © 2011-2022 走看看