26进制,字母表示数字,以递归算法升序输出字符串
来源:互联网 发布:淘宝客有没有权重 编辑:程序博客网 时间:2024/06/06 05:57
转载请注明出处:http://blog.csdn.net/jssongwei/article/details/53105502
主要的工具类如下:
/** * Created by SongWei on 2016/11/9. */public class Urls { public Urls() {} public int bigIndex = 0; //字符数组最高位下标 public char[] urls = {'a' - 1}; //循环输出num个26进制表示的字符串 public void generUrls(int num) { for (int index = 0; index < num; index++) {//从'a'开始一直生成num个url if (urls[0] < 'z') { urls[0] = (char) (urls[0] + 1); myPrint(urls);//打印urls内容 continue; } else { //准备递归处理进位问题 carry2Forward(1); } } } //向前进一位 private void carry2Forward(int carry2Index) {// 只有1个元素 urls[carry2Index - 1] = 'a'; if (carry2Index <= bigIndex) {//该位未超出最大下标 if (urls[carry2Index] < 'z') { urls[carry2Index] = (char) ((int) urls[carry2Index] + 1); myPrint(urls);//打印urls内容 } else { urls[carry2Index] = 'a'; carry2Forward(++carry2Index);//向高一位进位 } } else { carry2Head();//最高位加一个'a' myPrint(urls);//打印urls内容 } } //进位到最前面,新增一最高位:urls最高位新加'a' private void carry2Head() { char[] newUrls = new char[bigIndex + 2]; for (int i = 0; i <= bigIndex; i++) { newUrls[i] = urls[i]; } bigIndex++; newUrls[bigIndex] = 'a'; urls = newUrls; } //逆序打印结果(为计算方便,在char[]数组中设计成前面是低位,后面是高位) private void myPrint(char[] chars) { for (int i = chars.length - 1; i >= 0; i--) { System.out.print(chars[i]); } System.out.print("\n"); }}
主方法如下,打印50个:
public class Main { public static void main(String[] args) { Urls urls = new Urls(); urls.generUrls(50); }}
最终打印出来的结果如下:
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
aa
ab
ac
ad
ae
af
ag
ah
ai
aj
ak
al
am
an
ao
ap
aq
ar
as
at
au
av
aw
ax
ay
az
ba
bb
bc
bd
be
bf
bg
bh
bi
bj
bk
bl
bm
bn
bo
bp
bq
br
bs
bt
bu
bv
bw
bx
by
bz
ca
cb
cc
cd
ce
cf
cg
ch
ci
cj
ck
cl
cm
cn
co
cp
cq
cr
cs
ct
cu
cv
0 0
- 26进制,字母表示数字,以递归算法升序输出字符串
- 【C】从键盘上获取一个字符串,数字升序输出
- 递归算法—输入字母逆序输出&汉诺塔递归算法
- 以递归方式反序输出一个字符串
- 递归算法反序输出字符串
- 字符串分类,输出字符串中字母,数字,符号的个数
- c\c++字符串以数字,字母分开,并且存入数组
- 正则表达式:检测数字字母和下划线组成的字符串,且字符串以字母开头
- 递归练习-字母输出
- 查找字符串中的每个数字与字母并输出
- 递归算法实现字符串的逆序输出
- 键盘输入字符串(含数字和字母),输出最长的数字子串和数字个数
- 输入任意长字符串(以.结束),倒序输出-------递归
- 数字字符串转换为字母组合的种数算法
- poi导出excel,以字符串格式输出数字
- 输入一串字符,分别输出字母 数字 符号的个数,以$结束
- 数字字符串转化字母字符串
- 插入排序的递归算法(升序)
- 响应式开发从原理到实战案例(十二):响应式改版完整案例-文章列表
- ssh原理与运用
- 453. Minimum Moves to Equal Array Elements
- 【C++】实现容器Vector
- org.springframework.context.ApplicationContextAware使用理解
- 26进制,字母表示数字,以递归算法升序输出字符串
- Overload和Override的区别
- Description Resource Path Location Type Archive for required library: 'D:/repository/ued
- 2017年【计算机视觉&机器学习&人工智能】领域重要会议 汇总 (持续更新)
- 文件储存forAndroid
- Android开发四大组件汇总
- 代码对比
- angularjs select 三级联动
- NOIP2009Hankson 的趣味题