编码

作者: 极速魔法 | 来源:发表于2017-07-03 21:37 被阅读14次

假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, yyyw, yyyx, yyyy 其中a的Index为0,aa的Index为1,aaa的Index为2,以此类推。 编写一个函数,输入是任意一个编码,输出这个编码对应的Index.
输入描述:
输入一个待编码的字符串,字符串长度小于等于100.

输出描述:
输出这个编码的index

#include<iostream>
#include<cassert>

using namespace std;

int convert(string s){
    if(s.size()<4){
        for(int i=0;i<s.size()-1;i++){
            if(s[i]!=s[i+1] && s[i] !='z' && s[i+1] !='z'){
                throw invalid_argument("invalid input!");
            }
        }

        switch (s.size()){
            case 1:return 15628*(s[0]-'a');
            case 2:return 15628*(s[0]-'a')+1;
            case 3:return 15628*(s[0]-'a')+2;
        }

    } else{
        assert(s.size()==4);
        for(int i=0;i<s.size();i++){
            if(s[i]=='z'){
                throw invalid_argument("error input");
            }
        }

        int qian=s[0]-'a';
        int bai=s[1]-'a';
        int shi=s[2]-'a';
        int ge=s[3]-'a';

        int res=15628*qian+625*bai+25*shi+ge+3;
        return res;
    }
}

int main(){
    cout<<convert("ayyz")<<endl;
    return 0;
}

相关文章

  • mysql编码

    查看编码 查看数据库编码 查看表编码 查看字段编码 修改编码格式 修改数据库编码格式 修改表编码 修改字段编码

  • 编码

    编码 编码格式(ASCII编码,GB2312编码(简体中文),GBK,ANSI编码,unicode,utf-8编码...

  • 网络安全编码书目录

    网络安全编码 Base64编码 MD5编码 SHA1编码 SHA256编码 HMAC编码

  • 前端开发文档规范

    HTML 编码规范 请查看HTML编码规范 CSS 编码规范 请查看CSS编码规范 JavaScript 编码规范...

  • 音频技术基础

    一、音频编码调制技术 根据编码方式的不同,音频编码技术分为三种:波形编码、参数编码和混合编码。一般来说,波形编码的...

  • 第五节课的第三个作业

    #编码 #编码

  • MPT 中对 key 的编码

    MPT中涉及到了三种编码,分别为keybytes编码、Hex编码和Compact编码。 keybytes 编码 这...

  • NSLocale

    国家编码语言编码货币符号货币编码 =============currentLocale==============...

  • 二维码学习笔记——编码

    数据编码 源数据编码 编码模式(模式指示符) 我们先来说说数据编码。QR码支持如下的编码: 数字编码(Numeri...

  • ruby编码说明【转】

    程序编码一般分几种情况: 源码文件编码 接收外部内容的编码 运行环境编码 操作系统编码 首先源码文件的编码,可以通...

网友评论

      本文标题:编码

      本文链接:https://www.haomeiwen.com/subject/kfhzcxtx.html