问题描述:

假定一种编码的编码范围是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
示例
输入
baca
输出
16331
————————————————————————————————————————————

求一个字符串的编码,只需要求出来比这个字符串小的组合数即可,举个例子,求比bcde小的组合有多少个:
(1)串长为1:
第1位可以选[a,b),再加上b本身,共有b-a+1种
(2)串长为2:
第1位选[a,b)那么第2位可以选25种,第1位选b那么第2位只能选[a,c),再加上bc本身 ,共有(b-a)*25+(c-a)+1种,。
(3)串长为3:
原理同上,共有:(b-a)*25^2+(c-a)*25+(d-a)+1种
(4)串长为4;
原理同上,但注意当串长相同时,要减去本身这一种情况,
所以,共有:(b-a)*25^3+(c-a)*25^2+(d-a)*25+(e-a)种。
综上所述,只需要对串长分类处理,此题易于解决:

#include<iostream>
#include<string>
using namespace std;
const int c0=1;
const int c1=1+25;
const int c2=1+25+25*25;
const int c3=1+25+25*25+25*25*25;
int main()
{string s;cin>>s;int n=s.length();int index=0;switch(n){case 1:index=(s[0]-'a')*c3;break;case 2:index=(s[0]-'a')*c3+(s[1]-'a')*c2+1;break;case 3:index=(s[0]-'a')*c3+(s[1]-'a')*c2+(s[2]-'a')*c1+2;break;case 4:index=(s[0]-'a')*c3+(s[1]-'a')*c2+(s[2]-'a')*c1+(s[3]-'a')+3;break;default:break;}cout<<index<<endl;}

转载于:https://www.cnblogs.com/yfz1552800131/p/7498540.html

TX2017秋招笔试题之编码相关推荐

  1. 字节跳动-2020秋招-笔试题剖析【5道算法题】

    字节跳动-2020秋招-笔试题剖析[5道算法题],限时120分钟. 让我们一起来看看这些题吧! 题一:模型文件去重 [题目描述] 抖音上不同的用户类型我们有不同的用户模型文件. 我们有一个模型配置文件 ...

  2. 酷狗java秋招笔试题

    酷狗java秋招笔试题 单选题 1.在命中率极高的缓存设计中,时间复杂度最差的数据结构是( B ). A. 数组 B. 链表 C. 树 D. 哈希表 2.某二叉树共有11个结点,其叶子结点只有2个.则 ...

  3. 2020大疆秋招笔试题B卷

    2020大疆秋招笔试题B卷 选择题(选项没抄下来)10道记了9道 1.关于常指针和指向常量的指针 2.多线程调用如下函数,a,b,c哪些需要加锁保护 int a = 0; void knit() {s ...

  4. 2021网易秋招笔试题(Android开发)

    网易笔试题(2021.08.08) 校招的笔试题通常是4道编程题,时间为2个小时,每题25分. 2021秋招笔试题总结如下,包含问题和代码实现. 题1:查找关键词 查找关键词(单词在文章中出现频率&g ...

  5. 腾讯 2015秋招笔试题 编程题2:九宫格填数

    腾讯 2015秋招笔试题 编程2:九宫格填数 题目 2: 有下图的题解,请用 C/C++ 代码来列出满足下图 0-100 内的所有答案. 配合加减乘除,使得九宫格横竖都等于4. 智力冲浪 数字推理 请 ...

  6. 字节跳动2020届秋招笔试题

    字节跳动2020届秋招第一批笔试题(2019.8.11) 文章目录 字节跳动2020届秋招第一批笔试题(`2019.8.11`) 第一题[编程题25分]: 闹钟叫醒去上课 第二题[编程题25分]: 秘 ...

  7. 2017酷家乐秋招笔试题——后台开发

    楼主,昨天晚上做了酷家乐的笔试题,本来发来说是19:00-21:00两个小时,结果登入考试系统发现倒计时只有一个小时(坑!).不过题量很少,主要是选择题和简答题,简答题有一道是要编程的,当时内心太慌没 ...

  8. 嵌入式软件工程师 秋招笔试题

    某半导体公司的笔试题,当时花在C语言上的时间太少,答得很不好,现在有时间就分析一下错题吧. 1.存储一个32位数0x12345678到0x1000H-0x1003H四个字节单元中,若以小端模式存储,则 ...

  9. 58同城秋招笔试题解答 --map模式按value进行排序

    求字符串中字母重叠的次数并按要求输出(笔试题) 题目描述: 给定一个字符串,求出字母重叠出现的次数,最后按字典格式输出. 输入示例: aaabccbbbfffaddbaa 输出示例: a : 5 b ...

最新文章

  1. redis 集合操作
  2. java语法特点是什么意思_java的语法是什么意思
  3. C语言:为什么用fprintf(stderr,Error);比printf(Error);更好?
  4. 贵大计算机考研情侣,贵大计算机研究生怎么样?
  5. Infortrend大数据时代广电行业应用
  6. 最新消息!Cloudera 全球发行版正式集成 Apache Flink
  7. 深入浅出设计模式---3、代理模式和工厂模式
  8. scholarscope不显示影响因子_一劳永逸:这两个查看影响因子的插件你安装了吗?...
  9. vue使用高德地图API,定位,搜索,拖拽选址
  10. 【WiFi】WiFi 5G 信道、频宽对应关系及支持的信道列表
  11. pyQt5 学习笔记(6)设置鼠标(光标)样式
  12. 用tushare数据自定义期货大宗商品指数(3)
  13. 5. Podspec 文件分析
  14. 如何在PDF中删除页面的两大技巧介绍
  15. python仿真入门_python基础-入门
  16. Android常见的错误及解决
  17. 软件中级设计师 - 面向对象开发
  18. 计网第四章 网络层(咕咕咕)
  19. tomcat下webapps目录里ROOT文件删除掉一招恢复
  20. 二,十,十六进制之间的转换

热门文章

  1. 一分钟了解阿里云产品:ESC五大热点技术问题分析
  2. 哪些年给我们留下记忆的IT站点
  3. 避开使用XAML的性能陷阱
  4. 再谈C#里4个访问权限修饰符
  5. python中的type函数-python的type函数
  6. Go gRPC 调试工具 grpcui
  7. java多线程的底层实现_多线程的底层实现机制 - 欢迎来到古怪匹诺曹的开发世界 - OSCHINA - 中文开源技术交流社区...
  8. c语言 程序统计注释比例,C语言统计单词数量程序 超详解
  9. java 依赖其他项目时如何导出_使用Eclipse将具有外部依赖性的Java项目导出到jar...
  10. androidentity什么用_Android multipartentity的用法