题目描述:

使用字母来表示一个正整数,用小写字母表示。映射规则很简单,如下所示:

a 1

b 2

...

z 26

aa 27

ab 28

...

huawei 104680767

...

输入描述:

输入字母最少1位,最多6位,且字母只能是小写字母。输入的十进制数不超过32位整数最大值。

判断输入字符串的有效性,若无效输出ERROR。

输出描述:

输入十进制数,返回字母表示的数。输入字母表示的数,返回十进制数。

示例:

输入:

ab

输出:

28

思路:

主要是一个26进制和10进制的转换,26转10很容易,10转26涉及到余数那里需要考虑一下特殊情况(26 % 26 == 0这里)。

代码:

package com;public class Test2 {public static String convertTo26(String input) {String ret = "";if (input.matches("[1-9]{1}[0-9]{0,}")) {int inputInt = Integer.parseInt(input);StringBuilder sb = new StringBuilder();do{int temp = inputInt % 26;if(temp == 0){//这里需要特殊处理,否则如果是26不会生成z,会生成a`sb.insert(0, convertChar(26));inputInt = inputInt / 26 - 1;}else{sb.insert(0, convertChar(temp));inputInt = inputInt / 26;}}while(inputInt != 0);ret = sb.toString();} else if (input.matches("[a-z]{1,6}")) {int sum = 0;for (int i = input.length() - 1; i >= 0; i--) {sum += convertInt(input.charAt(i)) * Math.pow(26, input.length() - 1 - i);}ret = sum + "";} else {ret = "ERROR";}return ret;}/*** 字符转数字a-1* @param charactor* @return*/public static int convertInt(char charactor) {return ((int) (charactor - 'a') + 1);}/*** 数字转字符1-a* @param num* @return*/public static char convertChar(int num){return ((char)(num + 'a' - 1));}public static void main(String[] args) {System.out.println(convertTo26("zzz"));System.out.println(convertTo26("321272407"));}
}

转载于:https://www.cnblogs.com/DarrenChan/p/7458597.html

[算法]华为笔试题——字母和十进制数映射相关推荐

  1. [算法]华为笔试题——拼音与英文转换

    题目描述: 编写拼音与英文转换的函数,如果输入号码是英文,转成拼音,如果是拼音,转成英文,例如输入OneZeroDoubleThree,则输出YiLingSanSan. 拼音.英文见下表: Yi Er ...

  2. 华为笔试题---明明的随机数

    题目 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着 ...

  3. 【leetcode】第394题:字符串解码(华为笔试题)

    题目:给定一个经过编码的字符串,返回它解码后的字符串. 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次.注意 k 保证为正整数. ...

  4. 【数据挖掘】2022年昆仑万维 算法工程师笔试题

    [数据挖掘]2022年昆仑万维 算法工程师笔试题 企业:昆仑万维 1 单选题 1.ABCDE,出栈的顺序不可能是? 栈的知识 2.连续投硬币,第一次正面,奇数次A赢,偶数次B赢.则A赢的概率是多少 问 ...

  5. 【数据挖掘】2022年京东算法工程师笔试题(23届)

    时间:90分钟 2022年京东算法工程师笔试题(23届) 1 单选题 1.MySQL内部存储代码的优势 服务器上执行还可以节省带宽和网络延迟 代码重用.可以方便的统一业务规则,保证某些行为的一致性,所 ...

  6. 名企笔试:京东 2016 算法工程师笔试题(登楼梯)

    名企笔试:京东 2016 算法工程师笔试题(登楼梯) 2017-02-04 算法爱好者 有一段楼梯台阶有 15 级台阶,以小明的脚力一步最多只能跨 3 级,请问小明登上这段楼梯,有多少种不同的走法? ...

  7. 华为笔试题 -- 多个数组按顺序合并(Java代码实现)

    华为笔试题 – 多个数组按顺序合并(Java代码实现) 题目描述: 现在有多组整数数组,需要将他们合并成一个新的数组.合并规则,从每个数组里按顺序取出固定长度的内容合并到新的数组中,取完的内容会删除掉 ...

  8. 2019届华为笔试题(软件卷)

    华为笔试题共3道编程题.第一题100分,第二题200分,第三题300分,一共600分. 第一题: 输入描述: 1.忽略小数点,例如"A1.2",认为包含整数1和2: 2.如果整数的 ...

  9. 2014-百度 阿里 华为笔试题

    8月15日,百度2道面试题: 1.来自<编程之美>的概率题:一个桶里面有白球.黑球各100个,现在按下述规则取球:的     i .每次从通里面拿出来两个球:     ii.如果取出的是两 ...

  10. 京东2017校园招聘数据与算法方向笔试题

    昨天做了一下京东的在线笔试.京东这次笔试题分为三个部分,第一部分是选择题30道,第二部分是2道编程题,第三部分是5道实用性更强的选择题.这里仅贴出题目,不提供答案. 一.选择题 1.设循环队列的容量为 ...

最新文章

  1. mysql减少锁等待_降低锁竞争 减少MySQL用户等待时间
  2. Bullmind在线读书笔记软件
  3. 2018年终总结(一只刚毕业的程序猿)
  4. Angular26 ng-content和ng-container、投影的使用
  5. MATLAB 线型 颜色 和 标记点组合使用
  6. 【Linux】一步一步学Linux——pstack命令(261)
  7. JMM层面的内存屏障-HappenBefore
  8. 大数据之Azkaban部署
  9. 关于如何提高代码执行效率。
  10. HTML5开发手机项目—个人总结
  11. 工厂模式(Factory Method)
  12. Modelsim与ISE联和仿真错误
  13. php文件迅雷下载不弹出来,javascript,_文件下载按钮被迅雷响应后,JS事件无法触发,javascript - phpStudy...
  14. 【LSTM分类】基于双向长短时记忆(BiLSTM)实现数据分类含Matlab源码
  15. Upload_上传_并传递额外参数
  16. iOS-VLCKit实现仿网易云音乐播放音乐
  17. 使用python来进行用户流失预测的实战
  18. 浏览器-网页标题的图标
  19. ERP系统模块完全解析──主生产计划MPS
  20. 【剑指 Java】第 1 弹:靠这份 Java 基础知识总结,我拿到了满意的 Offer

热门文章

  1. cobbler报错:No such command: --get-loaders解决方案
  2. web集群之Ngnix相关配置
  3. Bugku-Web-xxx二手交易市场
  4. NYOJ--13--Fibonacci数
  5. HDOJ--1728--逃离迷宫(广搜)
  6. zabbix安装以及监控(一)
  7. 细说Oracle11g RAC的IP地址
  8. CSocket实现端口扫描
  9. div探索系列(二):让多个div显示在一行(浮动的div)
  10. 使用Ajax.dll前台调用后台方法及错误示例