• 编码问题


    标签: 未分类


    设有一个数组 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

  • 相关阅读:
    iOS 面试题搜集
    iOS 常用第三方类库、完整APP示例
    iOS 键盘遮挡输入 解决办法
    iOS UIColor RGB HEX
    iOS APP性能优化
    iOS Swift 数组 交换元素的两种方法
    iOS CoreData primitive accessor
    iOS Start developing ios apps (OC) pdf
    iOS 传值方式
    iOS IB_DESIGNABLE IBInspectable @IBDesignable @IBInspectable 加速UI开发
  • 原文地址:https://www.cnblogs.com/i-8023-/p/12190469.html
Copyright © 2020-2023  润新知