美团2015笔试题以及最优解(四)
来源:互联网 发布:小电影网站 知乎 编辑:程序博客网 时间:2024/05/22 06:15
题目: * 一个 char 类型的数组 chs,其中所有的字符都不同。 例如,chs=['A', 'B', 'C', ... 'Z'],则字符串与整数的对应关系如下: A, B... Z, AA,AB...AZ,BA,BB...ZZ,AAA...
* ZZZ, AAAA... 1, 2...26,27, 28... 52,53,54...702,703...18278, 18279... 例如,chs=['A', 'B', 'C'],则字符串与整数的对应关系如下:
* ZZZ, AAAA... 1, 2...26,27, 28... 52,53,54...702,703...18278, 18279... 例如,chs=['A', 'B', 'C'],则字符串与整数的对应关系如下:
* A,B,C,AA,AB...CC,AAA...CCC,AAAA... 1, 2,3, 4, 5 ...12, 13 ... 39, 40... 给定一个数组 chs,实现根据对应关系完成字符串与整数相互转换的两个函数
算法思路:利用伪n进制的算法进行位数解析(QQ:3036643587 欢迎交流)
public class TransforString { /** * * 功能描述:将数字转换成对应的字符串 * * @param chs 字符串数组 eg:['A','B','V'] * @param n 待转换的数字 * @return * @author jiaozhb/15072775 */ public static String getString(char[] chs, int n) { int cur = 1;// 个位数字全是1 int base = chs.length;// 转换基数 int len = 0;// 字符结果长度,初始默认为0 // while (n >= cur) { len++; n -= cur; cur *= base; } char[] res = new char[len]; int index = 0; int nCur = 0; do { cur /= base; nCur = n / cur; res[index++] = getCharAtValue(chs, nCur + 1); n %= cur; } while (index != res.length); return String.valueOf(res); } /** * * 功能描述:将对应的字符串转换成数字 * @param chs 元素数组 * @param s 字符串 * @return 对应数字 * @author jiaozhb/15072775 */ public static int getInt(char[] chs,String s){ int res = 0; int base = chs.length; int eValue = 0; for(int i=s.length(),j=0;i>0;i--,j++){ eValue = getCharAtIndex(chs, s.charAt(i-1)); res+=eValue*(int)Math.pow(base, j); } return res; } /** * * 功能描述:获取数组在元素s上的位置 * * @param chs * @param s * @return * @author jiaozhb/15072775 */ public static int getCharAtIndex(char[] chs, char s) { String chs_1 = String.valueOf(chs); String s_1 = String.valueOf(s); int res = chs_1.indexOf(s_1); if(res<0){ return 0; } return res+1; } /** * * 功能描述:获取数组在k位置上的值 * * @param chs * @param k * @return * @author jiaozhb/15072775 */ public static char getCharAtValue(char[] chs, int k) { if (k < 1 || k > chs.length) { return 0; } return chs[k - 1]; } public static void main(String[] args) { char[] chs = { 'A', 'B', 'C' }; int n = 12;// System.out.println(getString(chs, n));// System.out.println(getCharAtIndex(chs, 'A')); System.out.println(getInt(chs, "AA")); }
1 0
- 美团2015笔试题以及最优解(四)
- 美团2015笔试题以及最优解(一)
- 美团2015笔试题以及最优解(二)
- 美团2015笔试题以及最优解(三)
- 2015美团笔试
- 美团2015校园招聘笔试题
- 美团2015部分笔试题
- 2015美团笔试(南京地区)
- 美团2015 研发笔试 (1)
- 美团2015 研发笔试 (2)
- 美团笔试题(JavaScript)
- 【笔试练习】美团笔试题(一)
- [笔试练习]美团笔试题
- 2015美团笔试题目
- 一道美团笔试题
- 美团笔试题:拜访
- 美团点评笔试题
- 美团2015校招研发笔试题--编程
- getopt_long函数用法
- STL---哈希map:unordered_map
- 策略(Strategy)模式
- 塞尔将向阿里巴巴集团总裁迈克尔埃文斯汇报工作
- open-falcon alarm 模块报警信息处理
- 美团2015笔试题以及最优解(四)
- Base64的Java代码实现
- Vagrant+virtualBox搭建集成开发环境
- 值得说的一个问题:C语言实现拓扑排序
- 技术笔记_如何在vs2015中配置使用sqlite3 x64 for .Net4x
- 127,常用结构体
- 在Xcode7/7.1中使用Http请求,App Transport Security has blocked a cleartext HTTP (http://) resource load sin
- C++ Primer 学习笔记16 string字符串
- java clone方法之深拷贝和浅拷贝