C#算法 对一个字符串的相邻两字符进行对调,能否实现回文?如果可以,要进行多少次对调?

来源:百度知道 编辑:UC知道 时间:2024/06/19 00:33:37
1、写出你的思维
2、用C#程序实现
只能是相邻的两个字母对调啊!QQ:449038247
这种程序等于是把一个字符串倒序了!

string str = textBox1.Text;
char temp;
char[] chr = str.ToCharArray();
for (int i = 0; i < chr.Length - 1; i++)
{
for (int j = 1; j < chr.Length - i; j++)
{
temp = chr[j - 1];
chr[j - 1] = chr[j];
chr[j] = temp;
}
}

//LOVE

// OLVE OVLE OVEL
// VOEL VEOL
// EVOL

//EVOL

//are
// rae Rea;
// era

//me
// em

// 交换的次数:1 + 2 + 3 + (n - 1);

string cc =

当然可以实现。
public string firstAndSecondChang(string str)
{
string newStr="";
char[] arrStr = str.ToCharArray();
for(int i = 0,j=1 ; i < arrStr.Length -2 && j <= arrStr.Length -1;i +=2,j+=2)
{
string a = arrStr[i];
string b = arrStr[j];
newStr += b+a;
}
return newStr;
}

还可以这样。
public string firstAndSecondChang(string str)
{
string newStr="";
int i = 0 ;
while(str=="")
{
string aa = str.SubString(i,2);
char [] bb = aa.ToCharArray();
Array.Reverse(bb);
string cc = new string(bb);
newStr += cc;
i++;
str = str.StartTirm(2);
}
return str;
}

先将字符串转成char数组,然后反转.再转成字符串
string aa