先求一个算法:将字符串反序:比如:输入:"Hello"输出为:"olleH"

解决方案 »

  1.   

    请大家集思广益。分析不同的情况。 把我没考虑全的加进来。共同学习了。====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  2.   

    简单的使用Array的现有方法就可以完成此功能
      

  3.   

    string str = "Hello";
    strRev = new string(Array.Reverse(str.ToCharArray()));
      

  4.   

    string str = "Hello";
    string strRev = new string(Array.Reverse(str.ToCharArray()));
      

  5.   

    那要是比如是汉字的了。比如“您好。”变成“。好您”有什么优秀的算法吗?====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  6.   

    Array.Reverse(str.ToCharArray())这个执行的是返回结果是void类型。而string()里面需要输入的是char[]类型的结构。编译不通过。请问还有什么好的办法吗?====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  7.   

    string str = "Hello";
    char[] arr = str.ToCharArray();
    Array.Reverse(arr);
    string strRev = new string(arr);
      

  8.   

    string str = "Hello";
            string strRev = "";
            char[] se = str.ToCharArray();
            int len = se.Length;
            //se=(char[])Array.Reverse(se);
            for (int i = len - 1; i >= 0; i--)
            {
                strRev += se[i].ToString();
            }
            //string strRev = new string();        this.Label1.Text = strRev;我最后是用这个其笨的方法来实现的。你那个不行啊。string()的构找造函数那里就有问题。编译不通过。VS.net环境下。你看看。====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  9.   

    TO: jackymi(完美刺客) 你说利用栈。那就说一个完美的解决方案出来了。效率高。运行时间短的经典代码。贴一个看看。 ====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  10.   

    刚出的题目。很多人做错呵呵        static void Main(string[] args)
            {
                StringBuilder sb = new StringBuilder("123456");
                for (int i = 0, j = sb.Length - 1; i < j; i++, j--)
                {
                    char ch = sb[i];
                    sb[i] = sb[j];
                    sb[j] = ch;
                }
            }记住,用String就错。
      

  11.   

    如果是直接反的话就不存在算法了,
    string str = "Hello";
    string strRev = new string(Array.Reverse(str.ToCharArray()));
    就可以了
      

  12.   

    string str = "Hello";
    string txt = "";for (ini i=str.Length-1;i>=0;i--)
         txt = txt + str[i];
      

  13.   

    在C#中。中英文都是一样的,因为系统默认编码是UTF8,一个中文字符的长度和一个英文字符的长度是一样的。
      

  14.   

    如果连API都无法熟练使用的话,就不要考虑什么算法了。
      

  15.   

    class Program
        {
            static void Main(string[] args)
            {
                string str = "hello";            Stack<char> cStack = new Stack<char>(str);            while (cStack.Count > 0)
                {
                    Console.Write(cStack.Pop());
                }            Console.ReadLine();
            }
        }
      

  16.   

    /*
    你那个不行啊。string()的构找造函数那里就有问题。编译不通过。VS.net环境下。你看看。
    */string str = "Hello您好";
    char[] arr = str.ToCharArray();
    Array.Reverse(arr);
    string strRev = new string(arr);
    MessageBox.Show(strRev);VS2003 WinForm下测试
    弹出消息框,显示"好您olleH"
      

  17.   

    VS2005 WinForm下测试
    同样弹出消息框,显示"好您olleH"!
      

  18.   

    哦,好了。调试通过。没问题了。====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  19.   

    void Reverse(string s) 
    {
           char temp;
           for (int i = 0, i < s.Length / 2; i++)
           {
               temp = s[i];
               s[i] = s[s.Length - 1 - i];
               s[s.Length - 1 - i] = ch;
            }
    }
      

  20.   

    楼上的...呵呵
    void Reverse(string s) 
    {
           char temp;
           for (int i = 0, i < s.Length / 2; i++)
           {
               temp = s[i];
               s[i] = s[s.Length - 1 - i];
               s[s.Length - 1 - i] = ch;
            }
    }
    你认为在C#下能通过?
      

  21.   

    To:macrocheng(♂幻城小裴♀) s[s.Length - 1 - i] = ch。。ch是什么变量了。====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  22.   

    > Avoid
     
    谢谢您指出的错误
    我是觉得你写的代码多使用了一个变量
    本身减弱了可读性
    代码需要简单美原则
      

  23.   

    string是不可变的,要用你那个方法编译时系统会告诉你变量是只读的.
      

  24.   

    直接复制过来一下。
    void Reverse(string s) 
    {
           string temp="";
           for (int i = 0, i < s.Length; i++)
              temp=s[i]+temp;
    }
      

  25.   


    发出的时候已经注意到了
    string引用类型的
    每次指定新的变量的时候
    不是直接修改而是重新在堆上分配内存写入新的内容
    所以是只读的
    呵呵
      

  26.   

    那我也问一个问题和string有关的string s1>if(s.Lenth==0)
    2>if(s==String.Empty)
    3>if(s=="")以上三个那个最快
      

  27.   

    fangxinggood(JustACoder) ( ) 信誉:106  2006-7-17 15:13:15  得分: 0   
       
    如果连API都无法熟练使用的话,就不要考虑什么算法了。算法 和 API
    有什么关系
    小弟 愚昧  
     
      

  28.   

    To:sskset(断点)你的这个能调试通过吗?需要引入什么吗?====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  29.   

    //To:sskset(断点)你的这个能调试通过吗?需要引入什么吗?用了泛型,2005(.NET2.0)以上才有的
    Stack是System.Collections.Generic里面的类
      

  30.   

    一个出入栈就可以搞定的事情,,就是不知道.net里边有没有啊
      

  31.   

    dim strTest as string="Hello"msgbox(strReverse(strTest))
      

  32.   

    2005(.NET2.0)下用了泛型 堆栈。编译通过。还挺好用。不错。强。这样和数据结构也联系的比较好了。MS的环境不错啊。====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  33.   

    public class Test {

    /**
     * @param str
     */
    public String reverse(String str){
    if(str == null){
    return null;
    }
    if(str.length() == 0){
    return null;
    } char[] data = str.toCharArray();
    int iLeft = 0;
    int iRight = data.length-1;
    while(true){
    if(iRight>=0 && iLeft<iRight){
    char temp = data[iLeft];
    data[iLeft] = data[iRight];
    data[iRight] = temp;
    }else{
    break;
    }
    iLeft++;
    iRight--;
    }
    String newStr = new String(data);
    return newStr;
    }


    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Test test = new Test();
    String str = "您好吗";
    System.out.println(str);
    str = test.reverse(str);
    System.out.println(str);
    }}
    c# is much like the same as java, using unicode
      

  34.   

    To:zyoracle1978(天天) ,To All programmer  呵呵。不错啊。条条大陆通罗马。比较有意思。====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  35.   

    private void button1_Click(object sender, EventArgs e)
            {
                string abc = this.textBox1.Text;
                char[] array = abc.ToCharArray();
                Array.Reverse(array);
                string abcrever = new string(array);
                this.label1.Text = abcrever;
            }
      

  36.   

    Dim RcurOID As String = StrReverse(curOID)
      

  37.   


    .model small.stack 100h.datalist byte "abcdefghijklmnopqrstuvwxyz"len equ $-listresult byte len dup(?).code.startupmov ax,0mov bx,0mov si,0mov bx,offset resultmov di,len-1
    loop1:mov al,list[di]mov [bx][si],alinc sidec dicmp di,0jge loop1mov bx,offset resultmov dx,0mov si,0mov ah,2
    loop3:mov dl,[bx][si]int 21hinc sicmp si,lenjl loop3
    .exitend
      

  38.   

    楼上的,学习inghttp://community.csdn.net/Expert/topic/4889/4889166.xml?temp=.3476374
      

  39.   

    想问一下楼上的那我也问一个问题和string有关的string s1>if(s.Lenth==0)
    2>if(s==String.Empty)
    3>if(s=="")以上三个那个最快
    这个问题?哪个最快哟
      

  40.   

    To:handsome0308() 。你问的嘴快的问题。楼上的avoid已经解答。请留意看====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  41.   

    To: ClassicWuHao(Mouse)。这么牛啊。连汇编也整来了。不错不错。 可惜我把语法都给忘了。====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  42.   

    http://community.csdn.net/Expert/topic/4890/4890555.xml?temp=.5385858
      

  43.   


    如果连API都无法熟练使用的话,就不要考虑什么算法了。我真服你!会几个API,跟用电脑是一样的道理,不需要思考,
    强烈反对用API,API谁都会用,不用在这里特殊强调!
      

  44.   

    string str = "zikunsoft";
    char[] ch = str.ToCharArray();
    Array.Reverse(ch);
    string str2 = new string(ch);
    Console.Write(str2);
      

  45.   

    用api不是挺好的么
    这是C#
    要是c的话,就不用api了
    今天看《joel说软件》正好看到这个问题的
      

  46.   

    using System;
    using System.Collections.Generic;
    using System.Text;namespace StrReverse
    {
        class Program
        {
            static void Main(string[] args)
            {
                string s = "hello你好";
                string d ="";            for (int i = s.Length - 1;i >= 0;i--)
                {
                    d += s.Substring(i,1);
                }
                Console.WriteLine("{0}",d);
                Console.ReadLine();
            }
        }
    }
    希望高手指点