求一字符转化的算法

问题描述

问题大致是这样的,把当前的时间毫秒数转化成一个7个字符的字符串,与时间一一对应的,此字符串包括数字和字母,最好是一种可逆的算法。。 问题补充:有道理,18进制得到的是8位的,还不够.40进制还差不多huoyj 写道

解决方案

final static char[] digits = {'0' , '1' , '2' , '3' , '4' , '5' ,'6' , '7' , '8' , '9' , 'a' , 'b' ,'c' , 'd' , 'e' , 'f' , 'g' , 'h' ,'i' , 'j' , 'k' , 'l' , 'm' , 'n' ,'o' , 'p' , 'q' , 'r' , 's' , 't' ,'u' , 'v' , 'w' , 'x' , 'y' , 'z' ,'A' , 'B' , 'C' , 'D' , 'E' , 'F' ,'G' , 'H' , 'I' , 'J' , 'K' , 'L' ,'M' , 'N' , 'O' , 'P' , 'Q' , 'R' ,'S' , 'T' , 'U' , 'V' , 'W' , 'X' ,'Y' , 'Z' };private static String to62String(long i, int radix) { if (radix < Character.MIN_RADIX || radix > 62) radix = 10; if (radix == 10) return String.valueOf(i); char[] buf = new char[65]; int charPos = 64; boolean negative = (i < 0); if (!negative) { i = -i; } while (i <= -radix) { buf[charPos--] = digits[(int)(-(i % radix))]; i = i / radix; } buf[charPos] = digits[(int)(-i)]; if (negative) { buf[--charPos] = '-'; } return new String(buf, charPos, (65 - charPos)); }
解决方案二:
引用好思路,但是填补矩阵的字符不够啊由于00~09可以换成单位的 0~9,所有需要 8*9 = 72个字符,现有的只有62个字符,缺少10个,如果不能用符号,你只能想办法把一些特殊情况来缩减字符个数。
解决方案三:
可以考虑把年月日 去掉,只保留时分秒。这样位数应该够了。
解决方案四:
引用首先特点: 时间的毫秒数是少于或者等于14位的暂时不会超过。 开始做: 举例: 如果时间为: 1458201254752 (13位) 1. 补全14位,那么前补0 为 01458201254752 2. 你需要7位字符串,那么用14位分隔成7部分 : 01,45,82,01,25,47,52 3. 使用一种策略来将两位数字转换成一个字符,你会想到什么? 矩阵嘛 0 1 2 3 4 5 6 7 8 9 0 @ 1 # a b c d e f g h j 2 % A B C D E F G H I 3 & o p q r s t u v w 4 * O P Q R S T U V W 5 .............. 6 7 8 9 这样 01 取得 @ 这样取得7位字符组合成一个字符串即可。这确实是一种策略,但有失灵活,超过14位改怎么处理,15位,16位呢。其次,如果转换后也有比较大小的需要呢,这样就不能很好的比较了。而且矩阵实现起来比较负责,算法时间空间都不是很好。
解决方案五:
引用好思路,但是填补矩阵的字符不够啊26个英文字母, 大小写一共是 52个数字式10个,共62个,在加上#$@!乱其八糟的字符凑成81个不难吧,再说了还有中文字符呢,字符是从1~127个课件字符啊
解决方案六:
首先特点: 时间的毫秒数是少于或者等于14位的暂时不会超过。开始做:举例: 如果时间为: 1458201254752 (13位)1. 补全14位,那么前补0 为 014582012547522. 你需要7位字符串,那么用14位分隔成7部分 : 01,45,82,01,25,47,523. 使用一种策略来将两位数字转换成一个字符,你会想到什么? 矩阵嘛 0 1 2 3 4 5 6 7 8 90 @1 # a b c d e f g h j2 % A B C D E F G H I3 & o p q r s t u v w4 * O P Q R S T U V W5 ..............6 789这样 01 取得 @ 这样取得7位字符组合成一个字符串即可。
解决方案七:
可以考虑进制的转换,十进制毫秒表示位数肯定已经超过七位,可以转换为十六进制的,十六进制的也可以再转为十进制的,这个是可逆的。如果觉得十六进制的也不够用的话,就自己弄一个进制,比如0-9和26个字母组合起来的36进制的,和十六进制类似表示。你只需写个进制转换的方法就可以了。

时间: 2024-07-29 08:56:17

求一字符转化的算法的相关文章

c语言-求大神来看看我的算法有没有可行性,最好能给点建议

问题描述 求大神来看看我的算法有没有可行性,最好能给点建议 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10^100. 输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格. 输入样例: 1234567890987654321123456789 输出样例:yi san w 我的代码如下: #include<stdio.h> #include&l

求按百分比抽取数据算法

问题描述 求按百分比抽取数据算法 我有个需求 要求用百分比抽取数据以达到数据审阅的目的 我做了一个简单的程序但达不到要求 <?php header('Content-Type: text/html; charset=utf-8'); //抽取算法 for($kou=1;$kou<=100;$kou++){ $kou_count=0; for($i=1;$i<=100;$i++){ $key=($i)%(100/$kou); if( intval( $key ) == 0){ //echo

求一个数学难题的算法

问题描述 求一个数学难题的算法 F0=1000F1=F0*a-30;F2=F1*a-30;F3=F2*a-30;... ....Fn-1=Fn-2*a-30Fn=Fn-1*a-30 Fn=0;输入n;输出a 解决方案 #include <stdio.h>int n;double a;double fun(int tInputValue){ if(tInputValue == 0) return 1000.0; else return fun(tInputValue-1)*a-30;}int m

编程题-求大神破解一个算法,手机号转为6位数的16进制的数好像是!!

问题描述 求大神破解一个算法,手机号转为6位数的16进制的数好像是!! 输入 -------------------------**输出** 18019617815-------------C90381 18012509150-------------32ECB9 18120150106@njxy-----CC6AAF 18120150151@njxy-----F2F3F6 求大神能看出来这是什么算法,怎么计算的

想要深入学习编程,求推荐语言-目的是算法实现和数据分析

问题描述 想要深入学习编程,求推荐语言-目的是算法实现和数据分析 目前懂得Python, Vb.Net, R的基本知识,并稍微懂得一些C# 实验室大概要向数据处理方面靠一靠,主要涉及的是地理数据库(关系数据库) 最基本需要是实现功能,例如spatial data clusering啊,定制的决策树啊一类的,也有可能涉及到批处理和其他的底层地理数据库处理. 以后可能有一定图形界面的需求. 我应该主要深入学习哪一门语言比较合适我的需求? 或者有什么其他的语言推荐吗 解决方案 推荐python,现在p

数据库-急求考勤循环排班算法

问题描述 急求考勤循环排班算法 给出一个循环周期的班次排班方案,如何按这个循环周期自动生成每一天的排班方案,数据库该如何设计,具体算法如何 解决方案 http://course.baidu.com/view/d125315e312b3169a451a4f1.html 解决方案二: 考勤排班算法和计算方式 http://jhnc.blog.163.com/blog/static/1365378200856112854897/ 解决方案三: oa系统设计---考勤系统算法 上网搜索了一下,大家基本上

多线程-跪求大神,编写算法实现并发进程的模拟

问题描述 跪求大神,编写算法实现并发进程的模拟 一.实验目的 1. 了解进程的原因执行顺序,以及并发进程的运行次序 2. 进一步深刻理解操作系统在多进程(线程)执行中的作用 二.实验内容 1. 实现并发进程的程序模拟 2. 可以多线程编程代替并发进程 三.实验要求 1. 实现多进程(线程)程序编码,程序须要体现出多线程的并发执行的特征:运行结果无序.不可重现 2. 在上述基础上,考虑为多线程设置同步机制,程序须要体现出同步多线程的特点,即运行结果的可再现性 四.实验提示 1. 多线程运算结果的不

求指点-求推荐:c,C++,算法,数据结构,编写简单游戏等方面的书籍。

问题描述 求推荐:c,C++,算法,数据结构,编写简单游戏等方面的书籍. 我是大一的,刚刚学完谭浩强的C,现在正在学开始谭浩强的C++.希望大家能够给一些建议:推荐一些书籍.谢谢 解决方案 说实话不推荐学习谭浩强的那两本书,别问为什么,因为你如果刚学的话,体会不到我说的,但是如果已经看完了,其实如果你只看了他的书的话,估计你啥也做不了,常见的C语言小程序,列入俄罗斯方块,贪吃蛇,扫雷,等等这些,不过提醒你,我给你你个关键词:1.函数 2.指针 3.链表 4.函数指针 5.数组 6.结构体 指针数

安卓后端-求Java高效合理排序算法

问题描述 求Java高效合理排序算法 安卓界面列表可任意拖拽变换列表数据顺序,保存数据在后端服务,怎样在后端实现排序,求各路高手指点,确切的方案也可以,大概思路方向也可以,希望大家不吝赐教,先谢过 解决方案 这个在排序的时候加上一个orderid,当你页面上改变位置的时候,就更新orderid发回去. 这个链接的前端可以借鉴http://www.cnblogs.com/breakdown/archive/2012/03/29/2423091.html