同事问的一个问题
Posted -lanfenglanmeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同事问的一个问题相关的知识,希望对你有一定的参考价值。
今天同事问了一个问题,感觉比较有意思,保存一下。
问题是这样的。比如一个字符串,"123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",从中取任意个数的字符组成新的字符串,比如“2M”,然后+1,这是要得到结果是“2N”,如果是“ZZ”的话,得到的结果应该是“111”。
实现代码如下:
import java.util.*; /** * @Author: bob * @Description: TODO * @Date: 2019/8/27 17:33 */ public class Test public static String source = "123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; public static void main(String[] args) String str = "1ZZ"; String[] strs = str.split(""); String[] sources = source.split(""); Map<String, Integer> map = new HashMap<String, Integer>(); int length = sources.length; for (int i = 0; i < length; i++) map.put(sources[i], i + 1); int zhi = 0; for (int i = 0; i < strs.length; i++) zhi += Math.pow(length, strs.length - 1 - i) * map.get(strs[i]); zhi += 1; new Test().result(zhi, length); StringBuilder sb = new StringBuilder(); for (int i = list.size() - 1; i >= 0; i--) sb.append(sources[list.get(i) - 1]); System.out.println(sb.toString()); public static List<Integer> list = new ArrayList<Integer>(); private void result(int zhi, int length) int a = zhi/length; int b = zhi - a*length; list.add(b); if (a > length) result(a, length); else list.add(a);
如果大家有更好的方法的话,请赐教,毕竟我不是科班出身,没学过算法(已经打算要补短板了)。
以上是关于同事问的一个问题的主要内容,如果未能解决你的问题,请参考以下文章