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

字符串合并处理

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

#include <stdio.h>
#include "stdlib.h"
#include "string.h"

int compre(const void* p1, const void* p2) {
    return *(char*)p1 - *(char*)p2;
}

int main() {
  //借鉴大佬的一个翻转解法
    char input[] = {"0123456789abcdefABCDEF"};
    char output[] = {"084C2A6E195D3B7F5D3B7F"};
    char str1[101] ={'\0'};
    char str2[101] ={'\0'};
    char str[201];
    int len_sort1 =0, len_sort2 = 0;
    while (scanf("%s", str) != EOF) {
        scanf("%s", str1);
        strcat(str, str1);
    }

    int len = strlen(str);
    int j;
    for (int i = 0; i < len; i++) {
        if (i % 2 == 0) 
        {
            str1[i / 2] = str[i];
            len_sort1++;
        }
        else 
        {
           str2[i / 2] = str[i]; 
           len_sort2++;
        }
    }

    qsort(str1, len_sort1, sizeof(char), compre);
    qsort(str2, len_sort2, sizeof(char), compre);
    for (int i = 0; i < len; i++) {
        if (i % 2 == 0) str[i] = str1[i / 2] ;
        else str[i] = str2[i / 2];
    }

    for (int i = 0; i < len; i++) {
        for ( j = 0; j < 22 ; j++) {
            if (input[j] == str[i]) {
                str[i] = output[j];
                break;
            }
        }


    }
    printf("%s", str);



}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-23 14:13
这是聊岔撇了吗,相同的话问了两遍
吴offer选手:上下文切换这一块
点赞 评论 收藏
分享
06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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