L1-027. 出租 IMPLEMENTATION

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int bok[15],ind[15];
bool cmp(int a,int b){
    return a>b;
}
int main()
{

    string phone;
    getline(cin,phone);
    vector<int>num;
    for(int i=0;i<phone.length();i++){
        num.push_back((phone[i]-'0')%10);
    }

    sort(num.begin(),num.end(), cmp);
    int size = unique(num.begin(),num.end())-num.begin();
    for(int i=0;i<size;i++)
        bok[num[i]]=i;

    for(int i=0;i<phone.length();i++){
        int t = (phone[i]-'0')%10;
        ind[i] = bok[t];
    }

    printf("int[] arr = new int[]{");
    for(int i=0;i<size;i++){
        printf("%d",num[i]);
        if(i==size-1)printf("};\n");
        else printf(",");
    }
    printf("int[] index = new int[]{");
    for(int i=0;i<phone.length();i++){
        printf("%d",ind[i]);
        if(i==phone.length()-1)printf("};\n");
        else printf(",");
    }
    return 0;

}

题目不难 

注意 尽管是11位可以用longlong盛电话号 但是如果输入样例是010203

这种的 恐怕ll 就会读成10203了 所以还是用字符串出的问题会少一点

猜你喜欢

转载自blog.csdn.net/qq_33859479/article/details/79591959