日期:2014-05-18 浏览次数:20952 次
private void button1_Click(object sender, EventArgs e) { char[] sc = textBox1.Text.ToCharArray(); Array.Reverse(sc); textBox1.Text = new String(sc); }
------解决方案--------------------
http://topic.csdn.net/t/20060122/13/4530364.html
------解决方案--------------------
在Microsoft.VisualBasic命名空间中有个类Strings可以倒置(CLR中,你知道的,C#也可以调用)
另外,如果是.net 3.5,可以使用扩展方法Reverse
string s;
string ss=new string(s.Reverse().ToArray());//在string上,智能感知没有Reverse这个方法,但实际上可以用
------解决方案--------------------
过程并不复杂,所以高效与否很难体现
印象中好象没有现成的属性方法,现写的
public static string fanzhuan(string a)
{
int len=a.Length;
string s="";
for(int i=len-1;i>=0;i--)
{
s=s+a.Substring(i,1);
}
return s;
}
------解决方案--------------------
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string str = "abcdefg我们";
Console.WriteLine(str);
Console.WriteLine(Reverse(str));
}
public static string Reverse(string str)
{
if (str == null || str.Length < 2) return str;
char[] charArr = str.ToCharArray();
for (int i = 0, j = charArr.Length - 1; i < charArr.Length / 2; i++, j--)
{
char tmp = charArr[i];
charArr[i] = charArr[j];
charArr[j] = tmp;
}
return new string(charArr);
}
}
}
------解决方案--------------------
再怎么高效,也是O(n)的时间复杂度。所以这个问题没有什么“高效”的方法。
string s = "abcdef"
for(int i = 0; i< s.length /2 ; i++)
{
char tempc = s[i];
s[i] = s[s.length-i];
s[s.length-i] = tempc;
}
------解决方案--------------------
o(n)