Blogs Hub

Reverse String - MiniTV

Reverse String - मिनी टीवी

Write a function that reverses a string. The input string is given as an array of characters char[].

Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.

You may assume all the characters consist of printable ASCII characters.

 

Example 1:

Input: ["h","e","l","l","o"]

Output: ["o","l","l","e","h"]

 

Example 2:

Input: ["H","a","n","n","a","h"]

Output: ["h","a","n","n","a","H"]

 

Solution:

using System;
using System.Collections.Generic;
using System.Text;

namespace LeetCode.AskGif.Easy.String
{
    public class ReverseStringSoln
    {
        public void ReverseString(ref char[] s)
        {
            for(int i=0, j = s.Length - 1; i < j; i++, j--)
            {
                char temp = s[i];
                s[i] = s[j];
                s[j] = temp;
            }
        }
    }
}

 

Time Complexity: O(n)

Space Complexity: O(1)

 

Unit Tests:

using CodingUnitTest.Util;
using LeetCode.AskGif.Easy.String;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Text;

namespace CodingUnitTest.Easy.String
{    
    [TestClass]
    public class ReverseStringSolnTests
    {
        [TestMethod]
        public void ReverseStringSoln_First()
        {
            var input = new char[] { 'h', 'e', 'l', 'l', 'o' };
            var output = new char[]{'o', 'l', 'l', 'e', 'h'};
            new ReverseStringSoln().ReverseString(ref input);

            ContractAssert.AreEqual(input, output);
        }
    }
}