题解 | #找位置#

找位置

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

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

struct C {
    char c;
    int times;
    int position[100];
} c[100];

void IninC() {
    for (int i = 0; i < 100; i++) {
        c[i].times = 0;
        for (int j = 0; j < 100; j++) {
            c[i].position[j] = -1;
        }
    }
}



int main() {
    char str[100];
    while (scanf("%s", str) != EOF) {
        IninC();
        int j = 0;
        for (int i = 0; i < strlen(str); i++) {
            int num, flag = 0; //判断c中是否已经保存该字符
            for (int k = 0; k < j; k++) {
                if (str[i] == c[k].c) {
                    flag = 1;
                    num = k;
                    c[k].position[c[k].times] = i;
                    break;
                }
            }
            if (flag) {
                c[num].times++;
            }
            else {
                c[j].position[0]=i;
                c[j].c = str[i];
                c[j].times++;
                j++;
            }
        }
        for (int i = 0; i < j; i++) {
            if (c[i].times > 1) {
                for (int k = 0; k < c[i].times; k++) {
                    if (k != c[i].times - 1) {
                        printf("%c:%d,", c[i].c, c[i].position[k]);
                    }
                    else{
                        printf("%c:%d\n",c[i].c,c[i].position[k]);
                    }
                }
            }
        }
    }
    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
02-28 17:01
门头沟学院 C++
俊朗的铁猫希望被捞:兄弟如果只想搞钱的话,你这个简历最适合的其实是辅导机构做dai写啥的真的特别赚
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务