在不使用任何临时变量的情况下反转字符串

我们得到了一条线。我们还得到了字符串中第一个和最后一个字符的索引。任务是在不使用任何额外变量的情况下反转字符串。

null

例如:

Input  : str = "abc"Output : str = "cba" Input :  str = "GeeksforGeeks"Output : str = "skeeGrofskeeG"

如果我们看看 反转字符串或数组的程序 ,我们只需要交换两个字符。这个想法是使用 用于交换变量的XOR 下面是这个想法的实施情况。

C++

// C++ Program to reverse a string without
// using temp variable
#include <bits/stdc++.h>
using namespace std;
// Function to reverse string and return reversed string
string reversingString(string str, int start, int end)
{
// Iterate loop upto start not equal to end
while (start < end)
{
// XOR for swapping the variable
str[start] ^= str[end];
str[end] ^= str[start];
str[start] ^= str[end];
++start;
--end;
}
return str;
}
// Driver Code
int main()
{
string s = "GeeksforGeeks" ;
cout << reversingString(s, 0, 12);
return 0;
}


JAVA

// Java Program to reverse a string without
// using temp variable
import java.util.*;
class GFG
{
// Function to reverse string and
// return reversed string
static String reversingString( char []str,
int start,
int end)
{
// Iterate loop upto start not equal to end
while (start < end)
{
// XOR for swapping the variable
str[start] ^= str[end];
str[end] ^= str[start];
str[start] ^= str[end];
++start;
--end;
}
return String.valueOf(str);
}
// Driver Code
public static void main(String[] args)
{
String s = "GeeksforGeeks" ;
System.out.println(reversingString
(s.toCharArray(), 0 , 12 ));
}
}
// This code is contributed by 29AjayKumar


Python3

# Python3 Program to reverse a string
# without using temp variable
# Function to reverse string and
# return reversed string
def reversingString( str , start, end):
# Iterate loop upto start not equal to end
while (start < end):
# XOR for swapping the variable
str = ( str [:start] + chr ( ord ( str [start]) ^
ord ( str [end])) +
str [start + 1 :]);
str = ( str [:end] + chr ( ord ( str [start]) ^
ord ( str [end])) +
str [end + 1 :]);
str = ( str [:start] + chr ( ord ( str [start]) ^
ord ( str [end])) +
str [start + 1 :]);
start + = 1 ;
end - = 1 ;
return str ;
# Driver Code
s = "GeeksforGeeks" ;
print (reversingString(s, 0 , 12 ));
# This code is contributed by 29AjayKumar


C#

// C# Program to reverse a string without
// using temp variable
using System;
class GFG
{
// Function to reverse string and
// return reversed string
static String reversingString( char []str,
int start,
int end)
{
// Iterate loop upto start
// not equal to end
while (start < end)
{
// XOR for swapping the variable
str[start] ^= str[end];
str[end] ^= str[start];
str[start] ^= str[end];
++start;
--end;
}
return String.Join( "" , str);
}
// Driver Code
public static void Main(String[] args)
{
String s = "GeeksforGeeks" ;
Console.WriteLine(reversingString
(s.ToCharArray(), 0, 12));
}
}
// This code is contributed by 29AjayKumar


Javascript

<script>
// Javascript program to reverse a string
// without using temp variable
// Function to reverse string and
// return reversed string
function reversingString(str, start, end)
{
// Iterate loop upto start not
// equal to end
while (start < end)
{
// XOR for swapping the variable
str[start] = String.fromCharCode(
str[start].charCodeAt(0) ^
str[end].charCodeAt(0));
str[end] = String.fromCharCode(
str[end].charCodeAt(0) ^
str[start].charCodeAt(0));
str[start] = String.fromCharCode(
str[start].charCodeAt(0) ^
str[end].charCodeAt(0));
++start;
--end;
}
return (str).join( "" );
}
// Driver Code
let s = "GeeksforGeeks" ;
document.write(reversingString(
s.split( "" ), 0, 12));
// This code is contributed by rag2127
</script>


输出:

skeeGrofskeeG

如果允许我们使用库函数,我们也可以使用 在C++中快速反转字符串 .我们甚至不需要第一个和最后一个字符的索引。

C++

// Reversing a string using reverse()
#include<bits/stdc++.h>
using namespace std;
int main()
{
string str = "geeksforgeeks" ;
// Reverse str[begin..end]
reverse(str.begin(), str.end());
cout << str;
return 0;
}


JAVA

// Reversing a string using reverse()
class GFG
{
public static void main(String[] args)
{
StringBuilder str = new StringBuilder( "geeksforgeeks" );
// Reverse str[begin..end]
str.reverse();
System.out.println(str);
}
}
// This code is contributed
// by PrinciRaj1992


Python3

# Reversing a string using reverse()
str = "geeksforgeeks" ;
# Reverse str[begin..end]
str = "".join( reversed ( str ))
print ( str );
# This code is contributed by 29AjayKumar


C#

// Reversing a string using reverse()
using System;
using System.Linq;
class GFG
{
public static void Main(String[] args)
{
String str = "geeksforgeeks" ;
// Reverse str[begin..end]
str = new string (str.Reverse().ToArray());
Console.WriteLine(str);
}
}
// This code is contributed by 29AjayKumar


Javascript

<script>
// Reversing a string using reverse()
function reverseString(str) {
return str.split( "" ).reverse().join( "" );
}
var str = ( "geeksforgeeks" );
document.write(reverseString(str));
// This code is contributed by todaysgaurav
</script>


输出:

skeegrofskeeg 

https://www.youtube.com/watch?v=Y

-UR3ravjRE

本文由 Somesh Awasthi先生 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享