• 对于字母映射表存储的编码复杂度对比。。


    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <vector>
    #include <map>
    using namespace std;
    struct node{
        char a,b;
        node(char _a,char _b){
            this->a=_a;
            this->b=_b;
        }
    };
    vector<node> data;
    map<char,char> m;
    void VEC(){
        data.push_back(node('A','A'));
        data.push_back(node('E','3'));
        data.push_back(node('H','H'));
        data.push_back(node('I','I'));
        data.push_back(node('J','L'));
        data.push_back(node('L','J'));
        data.push_back(node('M','M'));
        data.push_back(node('O','O'));
        data.push_back(node('S','2'));
        data.push_back(node('T','T'));
        data.push_back(node('U','U'));
        data.push_back(node('V','V'));
        data.push_back(node('W','W'));
        data.push_back(node('X','X'));
        data.push_back(node('Y','Y'));
        data.push_back(node('Z','5'));
        data.push_back(node('1','1'));
        data.push_back(node('2','S'));
        data.push_back(node('3','E'));
        data.push_back(node('5','Z'));
        data.push_back(node('8','8'));
    }
    void MAP(){
        m['A']='A';
        m['E']='3';
        m['H']='H';
        m['I']='I';
        m['J']='L';
        m['L']='J';
        m['M']='M';
        m['O']='O';
        m['S']='2';
        m['T']='T';
        m['U']='U';
        m['V']='V';
        m['W']='W';
        m['X']='X';
        m['Z']='5';
        m['1']='1';
        m['2']='S';
        m['3']='E';
        m['5']='Z';
        m['8']='8';
    }
    char A[]={'A','b','c','d','3','f','g','H','I','L','k','J','M',
    'n','O','p','q','r','2','T','U','V','W','X','Y','5'};
    char B[]={'1','S','E','0','Z','0','0','8','0'};
    bool isBig(char x){
        if(x>='A'&&x<='Z')
            return true;
        return false;
    }
    bool isSmall(char x){
        if(x>='a'&&x<='z')
            return true;
        return false;
    }
    
    bool isDigit(char x){
        if(x>='1'&&x<='9')
            return true;
        return false;
    }
    char c;
    const int maxn=100;
    char s[maxn];
    int main(){
    
    
        return 0;
    }

    应该可以看出来最后一个编码量最小。。但是对于中间不存在映射关系的元素我们可以用其他标志来特判没有。。

    不要自己硬数。。。费眼费力啊。。这个题好像小写字母和0是非法的。。所以我们可以用来特判

    但是最后一个存法会慢一些?线性的嘛。。

    map和vector应该会快一些。。毕竟是红黑树和块状链表。。但是这个毕竟是数据量有点大的情况

    数据量小的话我们尽量采用最后一种存储方式

  • 相关阅读:
    这 100 道 Python 题,拿去刷!!!
    快速入门 TensorFlow2 模型部署
    零基础入门 Kubernetes,你需要知道这些
    Java 面试必考难点,这一个教程全搞定
    Flask实战:如何从零开发“知乎”
    关于layui表格渲染templet解析单元格的问题
    清除input输入框的历史记录
    phpmyadmin导入导出大数据文件的办法
    yiiaseInvalidCallException The cookie collection is read only.
    Yii2.0关闭自带的debug功能
  • 原文地址:https://www.cnblogs.com/linkzijun/p/6158266.html
Copyright © 2020-2023  润新知