腾讯编程题——五笔编码

假定一种编码的编码范围是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.

问题描述:

问题即使找到输入编码对应的位置

先分析编码的第一位字母:比如 a { aa | aaa aaaa … aaay | aab aaba … aaby | … |aay aaya … aayy| } {ab | aba abaa … abab … abay | abb abba … abby | … |abyy}……. {ay | aya ayaa … ayay| … |ayy ayya … ayyy | } 共有 k*((25+1)*25+1)*25+1个编码

再分析编码的第二位字母:当第一位字母确定时,第二位编码 每换k个字母 如 ab–>ac 一共有 k*((25+1)*25+1)+1 将第一个一位码补上;

分析第三位子的字母: 当第二位的字母确定之后,第三位上,每换一个字母需经过:k*(25+1)+1 将第三位一开始前的两位码补上;

分析第四位:前三位确定好后,第四位即是该个编码在{a,b,c,…,y}中所对应的位置k+1,需要将开头的三位码补上

l = 'abcdefghijklmnopqrstuvwxy'
l = list(l)
## 第一位之前的个数函数
def First(l,char):k = l.index(char)return k*((26*25+1)*25+1)
## 第一位确定好后,第二位之前的个数函数
def Second(l,char):k = l.index(char)return k*(26*25+1)+1
## 第一第二位确定好后,第三位之前的个数函数
def Third(l,char):k = l.index(char)return k*26+1
## 第一,二,三位确定好后,第四位之前的个数函数
def Four(l,char):k = l.index(char)return k+1
s = input()
s = list(s)
## 由于index从0开始,无需加1
if len(s)==1:index = First(l,s[0])
if len(s)==2:index = First(l,s[0])+Second(l,s[1])
if len(s)==3:index = First(l,s[0])+Second(l,s[1])+Third(l,s[2])
if len(s)==4:index = First(l,s[0])+Second(l,s[1])+Third(l,s[2])+Four(l,s[3])
print(index)    
baca
16331

腾讯笔试题——五笔编码相关推荐

  1. ubuntu 极点五笔/万能五笔 for ibus

    1.下载附件文件vissible-ibus.tar.gz/wnwb.tar.gz 2. 安装 tar xvzf vissible-ibus.tar.gz cd vissible-ibus sudo c ...

  2. mysql 笔试题_MySQL笔试题详解(一)(中等难度)

    有一位学生在找数据分析工作的时候,遇到一个笔试题,内容如下: 现有注册用户表table_user,有两个字段:user_id(用户id).reg_tm(注册时间).有订单表table_order,有三 ...

  3. [历年IT笔试题]暴风影音笔试题集锦

    (1)从一个表达式字符串中找到最深层圆括号内的表达式.如:从字符串x+(y*z)+(m-(3+4))中找到3+4.如果有多个表达式具有相同的最深深度则只需给出其中一个. 备注:算术表达式本身是正确的, ...

  4. 为什么php面试笔试题,PHP笔试题

    PHP笔试题 1. 写出如下程序的输出结果2. 写出如下程序的输出结果3. 写出如下程序的输出结果4. 写出如下程序的输出结果5. 写出如... 1. 写出如下程序的输出结果 $str1 = null ...

  5. nec c语言笔试题,红外NEC编码发射程序_C语言(国外英文资料).doc

    红外NEC编码发射程序_C语言(国外英文资料) 红外NEC编码发射程序_C语言(国外英文资料) * * * * * * * Hardware platform: homemade infrared d ...

  6. 个人总结php笔试题五

    19.能够使php和HTML分离使用的模板 Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate 20.mysql_fe ...

  7. 傲梦python笔试题_python笔试题

    冒泡排序的原理:每次对相邻的两个元素进行比较,若前者大于后者,这将两者的位置交换.第一轮就可以将最大的元素置于列表的最后.几轮循环 冒泡排序的前提条件:有序的列表 import unittest # ...

  8. 上海长亮java笔试题_java笔试题整理

    exit()是system类的方法,如system.exit(); 如果某个方法是静态的,它的行为就不具有多态性. 类后面没有括号,方法必须要有返回值.如果没有返回值,要写void 构造函数不具有多态 ...

  9. java笔试题2014_Java笔试题 2014唯品会校招

    虽然看起来像是"覆盖",但是没有,private方法自动认为是final方法,对导出类屏蔽,LeTV的show其实是新的方法,main方法打印的也是TV,因为这不是覆盖.如果pri ...

  10. 90 个名企笔试题和算法题

    名企笔试 名企笔试:美团2016招聘笔试(股票交易日) 名企笔试:搜狐2016招聘笔试题(扎金花) 名企笔试:凤凰网2015招聘(二分查找) 名企笔试:4399游戏校招笔试题(快速排序) 名企笔试:蘑 ...

最新文章

  1. 10.QML Qt Quick Controls 2之imagine style
  2. Java记录 -24- equals方法重写
  3. 吴恩达第三周逻辑回归
  4. 帝国cms调用相关文章若没有则调取最新文章
  5. JDK 8中的流驱动的集合功能
  6. SpringCloud Alibaba Sentinel断路器介绍与控制台搭建
  7. 下载--保存(下载)文件到本地(.doc .jpg)
  8. CVE-2020-0688 Exchange 远程代码执行分析
  9. 再学Android之屏幕适配
  10. 清理windows资源管理器右键打开方式,新建菜单
  11. cass打开dwg文件无效_CAD文件打开时图形文件显示无效怎么办
  12. 读书百客:《陋室铭》赏析
  13. 【eNSP】基础实验2-----交换机接交换机
  14. vue-cli 3.x安装配置步骤详细说明文档
  15. 【火炉炼AI】机器学习044-创建隐马尔科夫模型
  16. BAT机器学习面试1000题系列(详细版)
  17. PRESTO SQL总结分享
  18. 非标自动化设备涉及的行业有哪些?
  19. Object Detection : One-stage Detector YOLO
  20. TFT 屏幕的使用——ESP32学习笔记(番外)

热门文章

  1. 护眼软件Linux,四个 Linux 下的“护眼”软件解析
  2. 河北农大计算机专业全国排名,2019河北农业大学现代科技学院专业排名
  3. 记录一次jeecms修改子栏目或子栏目进行排序时,服务请求发生了错误,
  4. springBoot接入阿里云oss
  5. C语言必背知识点(期末不挂科)
  6. 计算机基础必修上课是上机吗,关于大学计算机基础论文范文集,与上海财经大学国际工商管理学院相关毕业论文范文...
  7. node.js+社区儿童预防接种管理 毕业设计-附源码300924
  8. matlab恶狼追兔问题,饿狼追兔问题-数学建模.doc
  9. scratch五彩缤纷多瓣花 电子学会图形化编程scratch等级考试二级真题和答案解析2021-6
  10. 2021级天狮学院经济管理学院市场营销专升本专业辅导员及新生群