Given a string str, print reverse all words except the first and last words.
Examples:
Input : Hi how are you geeks Output : Hi woh era uoy geeks Input : I am fine Output : I ma fine
- Print the first word.
- For remaining middle words, print the reverse of every word after reaching end of it. This will print reverse of all words except the last word.
- Print the last word.
Implementation:
C++
// CPP program to print reverse of all words // except the corner words. #include <bits/stdc++.h> using namespace std;
void printReverse(string str)
{ // Print first word
int i = 0;
for (i = 0; i < str.length() && str[i] != ' ' ; i++)
cout << str[i];
// Print middle words
string word = "" ;
for (; i < str.length(); i++) {
if (str[i] != ' ' )
word += str[i];
else {
reverse(word.begin(), word.end());
cout << word << " " ;
word = "" ;
}
}
// Print last word
cout << word << " " ;
} int main()
{ string str = "Hi how are you geeks" ;
printReverse(str);
return 0;
} |
Java
// Java program to print reverse of all words // except the corner words. public class GFG{
static void printReverse(String str)
{
// Print first word
int i = 0 ;
for (i = 0 ; i < str.length() && str.charAt(i) != ' ' ; i++)
System.out.print(str.charAt(i)) ;
// Print middle words
String word = "" ;
for (; i < str.length(); i++) {
if (str.charAt(i) != ' ' )
word += str.charAt(i);
else {
System.out.print( new StringBuilder(word).
reverse().toString() + " " );
word = "" ;
}
}
// Print last word
System.out.print(word + " " );
}
public static void main(String []args)
{
String str = "Hi how are you geeks" ;
printReverse(str);
}
// This code is contributed by Ryuga } |
Python3
# Python3 program to print reverse of all words # except the corner words. def printReverse(s):
#Taking all the words in a list
l = [s for s in s.split( ' ' )]
#printing the first word as it is
print (l[ 0 ], end = ' ' )
for i in range ( 1 , len (l) - 1 ):
#printing middle words reversed
print (l[i][:: - 1 ], end = ' ' )
#printing the last word as it is
print (l[ len (l) - 1 ])
s = "Hi how are you geeks"
printReverse(s) |
C#
// C# program to print reverse of all words // except the corner words. using System;
using System.Text;
class GFG
{ static void printReverse(String str)
{
// Print first word
int i = 0;
for (i = 0; i < str.Length && str[i] != ' ' ; i++)
Console.Write(str[i]) ;
// Print middle words
String word = "" ;
for (; i < str.Length; i++)
{
if (str[i] != ' ' )
word += str[i];
else
{
word = reverse(word);
Console.Write( new StringBuilder(word).ToString() + " " );
word = "" ;
}
}
// Print last word
Console.Write(word + " " );
}
static String reverse(String input)
{
char [] temparray = input.ToCharArray();
int left, right = 0;
right = temparray.Length - 1;
for (left = 0; left < right; left++, right--)
{
// Swap values of left and right
char temp = temparray[left];
temparray[left] = temparray[right];
temparray[right] = temp;
}
return String.Join( "" ,temparray);
}
// Driver code
public static void Main(String []args)
{
String str = "Hi how are you geeks" ;
printReverse(str);
}
} // This code contributed by Rajput-Ji |
PHP
<?php // PHP program to print reverse of all // words except the corner words. function printReverse( $str )
{ // Print first word
$i = 0;
for ( $i = 0; $i < strlen ( $str ) &&
$str [ $i ] != ' ' ; $i ++)
echo $str [ $i ];
// Print middle words
$word = "" ;
for (; $i < strlen ( $str ); $i ++)
{
if ( $str [ $i ] != ' ' )
$word = $word . $str [ $i ];
else
{
$word = strrev ( $word );
echo $word . " " ;
$word = "" ;
}
}
// Print last word
echo $word . " " ;
} // Driver Code $str = "Hi how are you geeks" ;
printReverse( $str );
// This code is contributed // by ChitraNayal ?> |
Javascript
<script> // JavaScript program to print reverse of // all words except the corner words. function printReverse(str)
{ // Print first word
var i = 0;
for (i = 0;
i < str.length && str[i] != " " ;
i++)
document.write(str[i]);
// Print middle words
var word = "" ;
for (; i < str.length; i++)
{
if (str[i] != " " )
word += str[i];
else
{
var temp = word.split( "" ).reverse().join( "" );
document.write(temp + " " );
word = "" ;
}
}
// Print last word
document.write(word + " " );
} // Driver code var str = "Hi how are you geeks" ;
printReverse(str); // This code is contributed by rdtank </script> |
Output
Hi woh era uoy geeks
Complexity Analysis:
- Time Complexity: O(n)
- Auxiliary Space: O(L) where L is the length of the longest word in the string.