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