26个字母组合算法--急

hejiwang 2008-10-29 09:15:52
加精
想实现如下内容:
有a-z 26个字母,如何实现所有字母的组合。产生的位数为1到26
产生结果为:
a,b,..z
ab....az
ba....bz
abc...abz
abcdefg..a----abca。。Z
求算法。
...全文
5363 135 打赏 收藏 转发到动态 举报
写回复
用AI写文章
135 条回复
切换为时间正序
请发表友善的回复…
发表回复
larissa523 2012-04-12
  • 打赏
  • 举报
回复
感谢分享。
yojinlin 2012-04-12
  • 打赏
  • 举报
回复
學習了。
larissa523 2012-04-11
  • 打赏
  • 举报
回复
学习了。
yojinlin 2012-04-11
  • 打赏
  • 举报
回复
學習了。
嘛哩嘛哩吽 2012-04-10
  • 打赏
  • 举报
回复
只求算法....................
zhq1001 2011-11-22
  • 打赏
  • 举报
回复
学习了,很不错的帖子!!!
LanDuoMan 2011-09-05
  • 打赏
  • 举报
回复
阿哈哈 有意思
freudshow 2011-08-25
  • 打赏
  • 举报
回复
楼主是想生成英文字母表的正闭包吧
Cool_xiaocao 2011-03-29
  • 打赏
  • 举报
回复
又学习了哈
xyzwhut 2011-01-29
  • 打赏
  • 举报
回复
新手,帮顶顶看
我很菜,以后要多逛逛论坛
CSDNCFO 2011-01-25
  • 打赏
  • 举报
回复

private void button1_Click(object sender, EventArgs e)
{
int[] index = GetNextIndex(null);
StringBuilder strB = new StringBuilder();
while (index.Length < 3)
{
strB.Clear();
foreach (int charIndex in index)
{
strB.AppendFormat("{0}", (char)(charIndex+'a'));
}
strB.Append("\n");
//你要的结果
richTextBox1.Text += strB.ToString();
//获取下一组下标
index = GetNextIndex(index);
}
}
private int[] GetNextIndex(int[] curIndex)
{
List<int> indexList = new List<int>();

if (curIndex == null || curIndex.Length < 1)
{
curIndex = new int[] { -1 };
}

curIndex[0]++;

bool isAddNew = false;
for (int i = 0; i < curIndex.Length; i++)
{
if (curIndex[i] > 25)
{
curIndex[i] = 0;
if (i + 1 < curIndex.Length)
curIndex[i + 1]++;
else if (i + 1 < 25)
isAddNew = true;
}
}

indexList.AddRange(curIndex);
if (isAddNew) indexList.Add(0);

return indexList.ToArray();
}
CSDNCFO 2011-01-25
  • 打赏
  • 举报
回复
长度=4时,就等了5分钟还是没搞定,被用这种方法了,太难了;
CSDNCFO 2011-01-25
  • 打赏
  • 举报
回复
26进制加法运算,关键是下标处理
yqy888 2011-01-24
  • 打赏
  • 举报
回复
我是来学习的
飞翔的土豆 2009-09-17
  • 打赏
  • 举报
回复
[Quote=引用 41 楼 ddkc_c 的回复:]
用回溯法遍历解空间就可以了.
[/Quote]

求教~能否详细解释下?
yaoyadong 2009-09-14
  • 打赏
  • 举报
回复
历害
太阳丛 2009-07-04
  • 打赏
  • 举报
回复

这个写出来可以做个英语词典大全

如果再加个 · 或是 - 号

世界上所有可能出现的英文词汇几乎都有了

bhtfg538 2008-12-27
  • 打赏
  • 举报
回复
通过 T-SQL的思路 想到一个算法
建立表 A 保存 26个字母
DECLARE @I INT
SET @I=1
WHILE @I<=26
BEGIN
SELECT A.字母+B.字母 FROM A,B
--我这里写的 伪算法,然后 将结果导入INTO 到一个表 ,然后 下一个表自我CROSS JOIN 然后继续..

SET @I=@I+1
END
beiming999 2008-12-27
  • 打赏
  • 举报
回复
楼主没表述清楚吧?

当两个字母时,可以出现 ab 和 ba 这倒没什么问题
关键是,允许不允许出现aa bb?
spender 2008-12-22
  • 打赏
  • 举报
回复
太热闹了,我也正在处理这个问题。 要求跟搂主一样。 可是我有一个附加条件: 当产生的字符串条数>4G时,不再计算下去了。
我写了一个26进制转换--递归调用的方法计算。 算法没有问题,问题是永远不会产生:aa, aaa, aaaa 这样的字母。为什么?
当然了. 当计算到:26时:进位 有问题

以下是我的C代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAXLEN 32
const char S[27]="abcdefghijklmnopqrstuvwxyz";
main()
{
register i;

for (i=0; i<1024; i++) {
fprintf(stdout,"%d|",i);
transition(i);
fprintf(stdout,"\n");
}
exit(0);
}
transition(int x)
{
int qou,mod;
qou=x/26;
mod=x%26;

fprintf(stdout,"%c,",S[mod]);
if (qou==0) {
return 0;
} else {

transition(qou);
}
}
加载更多回复(110)
lru缓存leetcode 破解编码面试 收集涉及数据结构、算法和概念的有趣问题和解决方案。 解决方案在 Python 3.4.3 版中 目录 快速参考 :thumbs_up: 数据结构、算法和概念 :thumbs_up: :musical_notes: :thumbs_up: :musical_notes: :musical_notes: :collision: :musical_notes: :rocket: :collision: :musical_notes: 脑筋转弯(基本) 斐波那契数列7.1 7.2 两个给定数字之间的完全平方数 :musical_notes: 脑筋转弯(中等) :memo: :artist_palette: :collision: :thumbs_up: 矩阵7.1 :collision: 7.2 :thumbs_up: :musical_notes: 7.3 将二维矩阵顺时针旋转 90 度7.4 :thumbs_up: 求二维列表中矩形的坐标【TODO】 给定一个整数并返回其因子的所有可能组合 给定一个数字字符串(来自电话键盘),返回该数字可以表示的所有可能的字母组合 排列组合 参考 :collision: :thumbs_up: :rocket: :thumbs_up: :thumbs_up: :thumbs_up: 按位运算 :collision: :thumbs_up: :light_bulb: 种类 排序算法 & 1.1 :thumbs_up: 1.2 :rocket: 1.3 1.4 :rocket: :collision: 1.5 1.6 1.7 :memo: :collision: 中位数7.1 7.2 :light_bulb: :thumbs_up: :rocket: 7.3 :light_bulb: :musical_notes: 7.4 :rocket: :musical_notes: :artist_palette: 未排序的值列表8.1 求最小的 K 8.2 求最大的 K :artist_palette: :light_bulb: 对字符串进行排序 在未排序的列表中找到第一大和第二大的值 :light_bulb: :rocket: 搜索 实现跳过列表 :musical_notes: :light_bulb: :light_bulb: :collision: :musical_notes: :light_bulb: :collision: :rocket: 实现 Z 算

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧