Skip to content
Related Articles

Related Articles

Improve Article

Move spaces to front of string in single traversal

  • Difficulty Level : Easy
  • Last Updated : 24 Jun, 2021
Geek Week

Given a string that has set of words and spaces, write a program to move all spaces to front of string, by traversing the string only once.

Examples: 

Input  : str = "geeks for geeks"
Output : ste = "  geeksforgeeks"

Input  : str = "move these spaces to beginning"
Output : str = "    movethesespacestobeginning"
There were four space characters in input,
all of them should be shifted in front. 

Method 1 (Using Swap) 
Idea is to maintain two indices i and j. Traverse from end to beginning. If the current index contains space, swap chars in index i with index j. This will bring all spaces to beginning of the array.  

C++




// C++ program to bring all spaces in front of
// string using swapping technique
#include<bits/stdc++.h>
using namespace std;
 
// Function to find spaces and move to beginning
void moveSpaceInFront(char str[])
{
    // Traverse from end and swap spaces
    int i = strlen(str)-1;
    for (int j = i; j >= 0; j--)
        if (str[j] != ' ')
            swap(str[i--], str[j]);
}
 
// Driver code
int main()
{
    char str[] = "Hey there, it's GeeksforGeeks";
    moveSpaceInFront(str);
    cout << str;
    return 0;
}

Java




// Java program to bring all spaces in front of
// string using swapping technique
class GFG
{
 
    // Function to find spaces and move to beginning
    static void moveSpaceInFront(char str[])
    {
        // Traverse from end and swap spaces
        int i = str.length-1;
        for (int j = i; j >= 0; j--)
            if (str[j] != ' ')
            {
                char c = str[i];
                str[i] = str[j];
                str[j] = c;
                i--;
            }
    }   
 
    // Driver code
    public static void main(String[] args)
    {
        char str[] = "Hey there, it's GeeksforGeeks".toCharArray();
        moveSpaceInFront(str);
        System.out.println(String.valueOf(str));
    }
}
 
// This code is contributed by
// 29AjayKumar

Python3




# Python3 program to bring all spaces
# in front of string using swapping technique
 
# Function to find spaces and move to beginning
def moveSpaceInFront(s):
 
    # Traverse from end and swap spaces
    i = len(s) - 1;
    for j in range(i, -1, -1):
        if (s[j] != ' '):
            s = swap(s, i, j);
            i -= 1;
    return s;
     
def swap(c, i, j):
    c = list(c)
    c[i], c[j] = c[j], c[i]
    return ''.join(c)
     
# Driver code
s = "Hey there, it's GeeksforGeeks";
s = moveSpaceInFront(s);
print(s);
 
# This code is contributed
# by Princi Singh

C#




// C# program to bring all spaces in front of
// string using swapping technique
using System;
 
class GFG
{
 
    // Function to find spaces and move to beginning
    static void moveSpaceInFront(char []str)
    {
         
        // Traverse from end and swap spaces
        int i = str.Length-1;
        for (int j = i; j >= 0; j--)
            if (str[j] != ' ')
            {
                char c = str[i];
                str[i] = str[j];
                str[j] = c;
                i--;
            }
    }
 
    // Driver code
    public static void Main()
    {
        char []str = "Hey there, it's GeeksforGeeks".ToCharArray();
        moveSpaceInFront(str);
        Console.WriteLine(String.Join("",str));
    }
}
 
// This code is contributed by PrinciRaj1992

Javascript




<script>
 
// Javascript program to bring all spaces
// in front of string using swapping technique
 
// Function to find spaces and move to beginning
function moveSpaceInFront(str)
{
     
    // Traverse from end and swap spaces
    let i = str.length-1;
    for(let j = i; j >= 0; j--)
        if (str[j] != ' ')
        {
            let c = str[i];
            str[i] = str[j];
            str[j] = c;
            i--;
        }
}
 
// Driver code
let str = "Hey there, it's GeeksforGeeks".split("");
moveSpaceInFront(str);
 
document.write((str).join(""));
 
// This code is contributed by rag2127
 
</script>

Output: 

   Heythere,it'sGeeksforGeeks

Time complexity-: O(n) 
Auxiliary Space-: O(1)
 
Method 2 (Without using swap) 
The idea is to copy all non-space characters to end. Finally copy spaces. 



C++




// CPP program to bring all spaces in front of
// string using swapping technique
#include<bits/stdc++.h>
using namespace std;
 
// Function to find spaces and move to beginning
void moveSpaceInFront(char str[])
{
     // Keep copying non-space characters
     int i = strlen(str);
     for (int j=i; j >= 0; j--)
          if (str[j] != ' ')
             str[i--] = str[j];
 
     // Move spaces to be beginning
     while (i >= 0)
         str[i--] = ' ';
}
 
// Driver code
int main()
{
    char str[] = "Hey there, it's GeeksforGeeks";
    moveSpaceInFront(str);
    cout << str;
    return 0;
}

Java




// Java program to bring all spaces in front of
// string using swapping technique
class GFG
{
 
// Function to find spaces and move to beginning
static void moveSpaceInFront(char str[])
{
    // Keep copying non-space characters
    int i = str.length-1;
     
    for (int j = i; j >= 0; j--)
        if (str[j] != ' ')
            str[i--] = str[j];
 
    // Move spaces to be beginning
    while (i >= 0)
        str[i--] = ' ';
}
 
// Driver code
public static void main(String[] args)
{
    char str[] = "Hey there, it's GeeksforGeeks".toCharArray();
    moveSpaceInFront(str);
    System.out.println(String.valueOf(str));
}
}
 
// This code is contributed by Rajput-Ji

Python3




# Python3 program to bring all spaces
# in front of sing using swapping technique
 
# Function to find spaces and
# move to beginning
def moveSpaceInFront(s):
 
    # Keep copying non-space characters
    i = len(s) - 1;
     
    for j in range(i, -1, -1):
        if (s[j] != ' '):
            s = s[:i] + s[j] + s[i + 1:]
            i -= 1;
 
    # Move spaces to be beginning
    while (i >= 0):
        s = s[:i] + ' ' + s[i + 1:]
        i -= 1
    return s;
 
# Driver code
s = "Hey there, it's GeeksforGeeks";
s = moveSpaceInFront(s);
print(s);
 
# This code is contributed
# by Princi Singh

C#




// C# program to bring all spaces in front of
// string using swapping technique
using System;
 
class GFG
{
 
// Function to find spaces and move to beginning
static void moveSpaceInFront(char []str)
{
    // Keep copying non-space characters
    int i = str.Length-1;
     
    for (int j = i; j >= 0; j--)
        if (str[j] != ' ')
            str[i--] = str[j];
 
    // Move spaces to be beginning
    while (i >= 0)
        str[i--] = ' ';
}
 
// Driver code
public static void Main(String[] args)
{
    char []str = "Hey there, it's GeeksforGeeks".
                                    ToCharArray();
    moveSpaceInFront(str);
    Console.WriteLine(String.Join("",str));
}
}
 
// This code is contributed by Rajput-Ji

Javascript




<script>
 
// JavaScript program to bring all spaces
// in front of string using swapping technique
 
// Function to find spaces and move to beginning
function moveSpaceInFront(str)
{
     
    // Keep copying non-space characters
    var i = str.length - 1;
     
    for(var j = i; j >= 0; j--)
        if (str[j] !== " ")
            str[i--] = str[j];
     
    // Move spaces to be beginning
    while (i >= 0) str[i--] = " ";
}
 
// Driver code
var str = "Hey there, it's GeeksforGeeks".split("");
moveSpaceInFront(str);
document.write(str.join(""));
 
// This code is contributed by rdtank
 
</script>

Output: 

   Heythere,it'sGeeksforGeeks

Time complexity-: O(n) 
Auxiliary Space -:O(1)

This article is contributed by SAKSHI TIWARI. If you like GeeksforGeeks(We know you do!) and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.




My Personal Notes arrow_drop_up
Recommended Articles
Page :