[算法]华为笔试题——字母和十进制数映射
题目描述:
使用字母来表示一个正整数,用小写字母表示。映射规则很简单,如下所示:
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
[算法]华为笔试题——字母和十进制数映射相关推荐
- [算法]华为笔试题——拼音与英文转换
题目描述: 编写拼音与英文转换的函数,如果输入号码是英文,转成拼音,如果是拼音,转成英文,例如输入OneZeroDoubleThree,则输出YiLingSanSan. 拼音.英文见下表: Yi Er ...
- 华为笔试题---明明的随机数
题目 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着 ...
- 【leetcode】第394题:字符串解码(华为笔试题)
题目:给定一个经过编码的字符串,返回它解码后的字符串. 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次.注意 k 保证为正整数. ...
- 【数据挖掘】2022年昆仑万维 算法工程师笔试题
[数据挖掘]2022年昆仑万维 算法工程师笔试题 企业:昆仑万维 1 单选题 1.ABCDE,出栈的顺序不可能是? 栈的知识 2.连续投硬币,第一次正面,奇数次A赢,偶数次B赢.则A赢的概率是多少 问 ...
- 【数据挖掘】2022年京东算法工程师笔试题(23届)
时间:90分钟 2022年京东算法工程师笔试题(23届) 1 单选题 1.MySQL内部存储代码的优势 服务器上执行还可以节省带宽和网络延迟 代码重用.可以方便的统一业务规则,保证某些行为的一致性,所 ...
- 名企笔试:京东 2016 算法工程师笔试题(登楼梯)
名企笔试:京东 2016 算法工程师笔试题(登楼梯) 2017-02-04 算法爱好者 有一段楼梯台阶有 15 级台阶,以小明的脚力一步最多只能跨 3 级,请问小明登上这段楼梯,有多少种不同的走法? ...
- 华为笔试题 -- 多个数组按顺序合并(Java代码实现)
华为笔试题 – 多个数组按顺序合并(Java代码实现) 题目描述: 现在有多组整数数组,需要将他们合并成一个新的数组.合并规则,从每个数组里按顺序取出固定长度的内容合并到新的数组中,取完的内容会删除掉 ...
- 2019届华为笔试题(软件卷)
华为笔试题共3道编程题.第一题100分,第二题200分,第三题300分,一共600分. 第一题: 输入描述: 1.忽略小数点,例如"A1.2",认为包含整数1和2: 2.如果整数的 ...
- 2014-百度 阿里 华为笔试题
8月15日,百度2道面试题: 1.来自<编程之美>的概率题:一个桶里面有白球.黑球各100个,现在按下述规则取球:的 i .每次从通里面拿出来两个球: ii.如果取出的是两 ...
- 京东2017校园招聘数据与算法方向笔试题
昨天做了一下京东的在线笔试.京东这次笔试题分为三个部分,第一部分是选择题30道,第二部分是2道编程题,第三部分是5道实用性更强的选择题.这里仅贴出题目,不提供答案. 一.选择题 1.设循环队列的容量为 ...
最新文章
- mysql减少锁等待_降低锁竞争 减少MySQL用户等待时间
- Bullmind在线读书笔记软件
- 2018年终总结(一只刚毕业的程序猿)
- Angular26 ng-content和ng-container、投影的使用
- MATLAB 线型 颜色 和 标记点组合使用
- 【Linux】一步一步学Linux——pstack命令(261)
- JMM层面的内存屏障-HappenBefore
- 大数据之Azkaban部署
- 关于如何提高代码执行效率。
- HTML5开发手机项目—个人总结
- 工厂模式(Factory Method)
- Modelsim与ISE联和仿真错误
- php文件迅雷下载不弹出来,javascript,_文件下载按钮被迅雷响应后,JS事件无法触发,javascript - phpStudy...
- 【LSTM分类】基于双向长短时记忆(BiLSTM)实现数据分类含Matlab源码
- Upload_上传_并传递额外参数
- iOS-VLCKit实现仿网易云音乐播放音乐
- 使用python来进行用户流失预测的实战
- 浏览器-网页标题的图标
- ERP系统模块完全解析──主生产计划MPS
- 【剑指 Java】第 1 弹:靠这份 Java 基础知识总结,我拿到了满意的 Offer