0
点赞
收藏
分享

微信扫一扫

天梯练习 7-9 出租

杏花疏影1 2022-04-22 阅读 32
c++
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

const int N = 15;

bool b[N];//有没有存过这个数字
int a[N], cnt = -1;//存下的无重复的可能的数字
int re[N];//每个数字对应在a[]中的角标

bool cmp(int a, int b){
    return a > b;
}

int main(){
    string s;
    cin >> s;
    for(int i = 0; i < s.size(); i ++ ){
        int u = s[i] - '0';
        if(!b[u]){
            a[++ cnt] = u;
            b[u] = true;
        }
    }
    
    sort(a, a + cnt + 1, cmp);
    
    for(int i = 0; i <= cnt; i ++ ){
        re[a[i]] = i;
    }
    
    printf("int[] arr = new int[]{");
    for(int i = 0; i < cnt; i ++ ){
        cout << a[i] << ",";
    }
    cout << a[cnt] << "};" << endl;
    
    printf("int[] index = new int[]{");
    for(int i = 0; i < s.size() - 1; i ++ ){
        int u = s[i] - '0';
        cout << re[u] << ",";
    }
    cout << re[s[s.size() - 1] - '0'] << "};" << endl;
    
    return 0;
}
举报

相关推荐

0 条评论