zoukankan      html  css  js  c++  java
  • 编码问题

    标签: 未分类


    设有一个数组 A:ARRAY[0..N-1] OF INTEGER;数组中存放的元素为0~N-1之间的整数,且A[i]≠A[j](当i≠j时)。
    例如:
      N=6时,有:A=(4,3,0,5,1,2)
      此时,数组A的编码定义如下:
      A[0]的编码为0;
      A[i]的编码为:在A[0],A[1],……A[i-1]中比A[i]的值小的个数(i=1,2……N-1)
      ∴上面数组A的编码为:B=(0,0,0,3,1,2)

    输入:
      第一行输入整数N;
      第二行输入有两种可能:
      例如:
      A=(4,3,0,5,1,2)
      或
      B=(0,0,0,3,1,2)

    #include <iostream>
    #include <string>
    #include <cctype>
    using namespace std;
    
    void fixA(int num[], int len);
    void fixB(int num[], int len);
    
    int main(int argc, const char * argv[]) {
        int n;
        cin >>n;
        string str;
        cin >>str;
        int num[20]{};
        int i = 3, len = 0;
        int t = 0;
        while (i < str.size()) {
            if (isdigit(str[i])) {
                t = t*10 + (str[i]-'0');
            }
            if (str[i] == ',' || str[i] == ')') {
                num[len++] = t;
                t = 0;
            }
            i++;
        }
        if (str.front() == 'A') {
            fixA(num, len);
        } else {
            fixB(num, len);
        }
        
        return 0;
    }
    
    void fixB(int num[], int len) {
        int res[20]{};
        bool visit[20]{};
        for (int i = len-1; i >= 0; i--) {// 5 4 3 2 1 0
            int cnt = 0;
            for (int k = 0; k < len; k++) {
                if (cnt == num[i] && visit[k] == false) {
                    res[i] = k;
                    visit[k] = true;
                    break;
                }
                if (visit[k] == false) {
                    cnt++;
                }
            }
        }
        string s = "A=(";
        ABHandle(s, res, len);
    }
    
    

    B 转 A

  • 相关阅读:
    [原创]Acronis True Image使用手记
    毕业日志
    我的L6修好了
    三峡实习记之二
    初到华南理工印象
    三峡实习记之三
    SHOW毕业衫
    自己的第一次装机
    iOS Tools
    [转] A few things iOS developers ought to know about the ARM architecture
  • 原文地址:https://www.cnblogs.com/i-8023-/p/12190469.html
Copyright © 2011-2022 走看看