题解 | #字符串合并处理#

字符串合并处理

https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f

先取奇偶字符串再各自排序,合并。最后转换直接用密码表
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <stack>
#include <math.h>
using namespace std;

int main(){
    string s,s1,s2="";
    cin>>s>>s1;    
    s+=s1;    //合并
    int len=s.size();
    s1.clear();
    int i,k;
    //取奇偶
    for(i=0;i+1<len;i+=2){
        s1+=s[i];
        s2+=s[i+1];
    }
    if(len%2){
        s1+=s[len-1];
    }
    //排序
    sort(s1.begin(),s1.end());
    sort(s2.begin(),s2.end());
    s.clear();
    //合并
    for(i=0;i+1<len;i+=2){
        s+=s1[i/2];
        s+=s2[i/2];
    }
    if(len%2){
        s+=s1[len/2];
    }
    //转换
    string ans="084C2A6E195D3B7F";
    for(i=0;i<len;i++){
        if(s[i]>='A'&&s[i]<='F'){
            k=s[i]-'A'+10;
            s[i]=ans[k];
        }else if(s[i]>='a'&&s[i]<='f'){
            k=s[i]-'a'+10;
            s[i]=ans[k];
        }else if(s[i]>='0'&&s[i]<='9'){
            k=s[i]-'0';
            s[i]=ans[k];
        }
    }
    cout<<s<<endl;
    return 0;
}


#华为笔试#
全部评论

相关推荐

心中的变压器:简历需要突出重点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务