C# 简单的统计指定几个字符组合的所有结果
2015-05-12 15:08
197 查看
比如 用 a,b,c,d 4个字符组成一个8个长度的字符串,问一共有多少可能,应该有4的8次方种,用代码简单实现
上面的代码显然还是可以优化的
private string[] AAA() { string[] cs = { "a", "b", "c", "d" }; string[] ts = new string[8]; string[] ss = new string[Convert.ToInt32(Math.Pow(cs.Length, 8))]; int index = 0; for (int i_0 = 0; i_0 < cs.Length; i_0++) { for (int i_1 = 0; i_1 < cs.Length; i_1++) { for (int i_2 = 0; i_2 < cs.Length; i_2++) { for (int i_3 = 0; i_3 < cs.Length; i_3++) { for (int i_4 = 0; i_4 < cs.Length; i_4++) { for (int i_5 = 0; i_5 < cs.Length; i_5++) { for (int i_6 = 0; i_6 < cs.Length; i_6++) { for (int i_7 = 0; i_7 < cs.Length; i_7++) { ts[0] = cs[i_0]; ts[1] = cs[i_1]; ts[2] = cs[i_2]; ts[3] = cs[i_3]; ts[4] = cs[i_4]; ts[5] = cs[i_5]; ts[6] = cs[i_6]; ts[7] = cs[i_7]; ss[index++] = String.Join("-", ts); } } } } } } } } return ss; }
上面的代码显然还是可以优化的
private string[] BBB() { string[] cs = { "a", "b", "c", "d" }; int power = 8; string[] ss = new string[Convert.ToInt32(Math.Pow(cs.Length, power))]; string[] ts = new string[power]; int i = 0; int index = 0; Recur(cs, ref i, power - 1, ts, ref index, ss); return ss; } private void Recur(string[] cs, ref int i, int power, string[] ts, ref int index, string[] ss) { for (int j = 0; j < cs.Length; j++) { ts[i] = cs[j]; if (i < power) { i++; Recur(cs, ref i, power, ts, ref index, ss); } else { ss[index++] = String.Join("-", ts); } } i--; }
相关文章推荐
- c#练习——统计字符串中的数子字符的个数以及所有的数字字符
- iOS用最简单的方法统计字符串中指定字符的个数
- [C#] 10进制转62进制,实现穷举指定位数的所有密码组合(暴力破解)
- 一个简单的算法 - 将一个正整数拆分成指定几个正整数的组合
- 输入一个字符串,输出该字符串中字符的所有组合 C#【总结】
- Linux下统计文件行数 语法:wc [选项] 文件… 说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有 指定文件的总统计数。字是由空格字符
- 给定一列字符,生成指定长度的所有可能的组合
- C#简单遍历指定文件夹中所有文件的方法
- PHP使用strstr()函数获取指定字符串后所有字符的方法
- C#中,删除字符串中的指定字符的简便方法
- 给出a-z,0-9,输出所有的3个字符的组合
- php 从指定数字中获取随机组合的简单方法(推荐)
- php 在字符串指定位置插入新字符的简单实现
- C#遍历指定文件夹中的所有指定文件
- 删除指定字符c++代码实例及运行结果
- 编写一个程序统计输入字符串中:各个数字,空白字符,以及其他所有字符常出现的次数。
- C# 查询结果后修改指定的索引数据
- LeetCode--438. Find All Anagrams in a String(找到所有字符组合)Python
- Android基础-简单的动画实现 *补间动画 *透明度渐变 *旋转动画 *位移动画 *如果需要几个效果整合到一起,需要将所有效果全部放到set里
- 黑马程序员-.NET-C#查找字符串的所有排列组合