woohoo-又一个报绿的# EB23 - 劳工卡
p*2
1 楼
void combine( string str ){
int length = str.Length;
char[] instr = str.ToCharArray();
StringBuilder outstr = new StringBuilder();
doCombine( instr, outstr, length, 0, 0 );
}
void doCombine( char[] instr, StringBuilder outstr, int length,
int level, int start ){
for( int i = start; i < length; i++ ){
outstr.Append( instr[i] );
Console.WriteLine( outstr );
if( i < length - 1 ){
doCombine( instr, outstr, length, level + 1, i + 1 );
}
outstr.Length = outstr.Length - 1;
}
}
下边是我写的,有什么问题吗?
private void DoCombine(string str, StringBuilder sb, int start)
{
for (int i = start; i < str.Length; i++)
{
sb.Append(str[i]);
Console.WriteLine(sb);
if (i < str.Length - 1)
DoCombine(str, sb, i + 1);
sb.Length -= 1;
}
}
public void combine(string str)
{
StringBuilder sb = new StringBuilder();
DoCombine(str, sb, 0);
}
int length = str.Length;
char[] instr = str.ToCharArray();
StringBuilder outstr = new StringBuilder();
doCombine( instr, outstr, length, 0, 0 );
}
void doCombine( char[] instr, StringBuilder outstr, int length,
int level, int start ){
for( int i = start; i < length; i++ ){
outstr.Append( instr[i] );
Console.WriteLine( outstr );
if( i < length - 1 ){
doCombine( instr, outstr, length, level + 1, i + 1 );
}
outstr.Length = outstr.Length - 1;
}
}
下边是我写的,有什么问题吗?
private void DoCombine(string str, StringBuilder sb, int start)
{
for (int i = start; i < str.Length; i++)
{
sb.Append(str[i]);
Console.WriteLine(sb);
if (i < str.Length - 1)
DoCombine(str, sb, i + 1);
sb.Length -= 1;
}
}
public void combine(string str)
{
StringBuilder sb = new StringBuilder();
DoCombine(str, sb, 0);
}