Easy way to reverse each word in a sentence

后端 未结 9 2324
深忆病人
深忆病人 2021-01-02 12:59

Example:

string str = \"I am going to reverse myself.\";
string strrev = \"I ma gniog ot esrever .flesym\"; //An easy way to achieve this

A

9条回答
  •  半阙折子戏
    2021-01-02 13:25

    I used XOR for swapping from here http://en.wikipedia.org/wiki/XOR_swap_algorithm

    X := X XOR Y
    Y := X XOR Y
    X := X XOR Y
    

    the C# is:

    public  string ReverseWords(string str)
        {
            StringBuilder strrev = new StringBuilder();
            StringBuilder reversedword = new StringBuilder();
    
            foreach (var word in str.Split(' '))
            {
                char[] singlesentence = word.ToCharArray();
                int j = singlesentence.Length / 2;
                if (j > 0)
                {
                    for (int i = singlesentence.Length - 1, c = 0; i == j; c = c + 1, i = i - 1)
                    {
    
    
                        singlesentence[c] = (char)(singlesentence[c] ^ singlesentence[i]);
                        singlesentence[i] = (char)(singlesentence[c] ^ singlesentence[i]);
                        singlesentence[c] = (char)(singlesentence[c] ^ singlesentence[i]);
    
                    }
                }
    
                strrev.Append(singlesentence);
                strrev.Append(" ");
            }
            return strrev.ToString();
        }
    

提交回复
热议问题