Dada una string str , y dos enteros L y R , la tarea es invertir la string en el rango [L, R] , es decir, str[L…R] .
Ejemplos:
Entrada: str = “geeksforgeeks”, L = 5, R = 7
Salida: geeksrofgeeks
Invierta los caracteres en el rango str[5…7] = “geeks for geeks”
y la nueva string será “geeks rof geeks”
Entrada: str = “ijklmn”, L = 1, R = 2
Salida: ikjlmn
Acercarse:
- Si el rango no es válido, es decir, L < 0 o R ≥ len o L > R , imprima la string original.
- Si el rango es válido, siga intercambiando los caracteres str[L] y str[R] mientras L < R y actualice L = L + 1 y R = R – 1 después de cada operación de intercambio. Imprime la string actualizada al final.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function to return the string after // reversing characters in the range [L, R] string reverse(string str, int len, int l, int r) { // Invalid range if (l < 0 || r >= len || l > r) return str; // While there are characters to swap while (l < r) { // Swap(str[l], str[r]) char c = str[l]; str[l] = str[r]; str[r] = c; l++; r--; } return str; } // Driver code int main() { string str = "geeksforgeeks"; int len = str.length(); int l = 5, r = 7; cout << reverse(str, len, l, r); return 0; }
Java
// Java implementation of the approach import java.util.*; class GFG { // Function to return the string after // reversing characters in the range [L, R] static String reverse(char[] str, int len, int l, int r) { // Invalid range if (l < 0 || r >= len || l > r) return "Invalid range!"; // While there are characters to swap while (l < r) { // Swap(str[l], str[r]) char c = str[l]; str[l] = str[r]; str[r] = c; l++; r--; } String string = new String(str); return string; } // Driver code public static void main (String[] args) { String str = "geeksforgeeks"; int len = str.length(); int l = 5, r = 7; System.out.println(reverse(str.toCharArray(), len, l, r)); } } // This code is contributed by Ashutosh450
Python3
# Python3 implementation of the approach # Function to return the string after # reversing characters in the range [L, R] def reverse(string, length, l, r) : # Invalid range if (l < 0 or r >= length or l > r) : return string; string = list(string) # While there are characters to swap while (l < r) : # Swap(str[l], str[r]) c = string[l]; string[l] = string[r]; string[r] = c; l += 1; r -= 1; return "".join(string); # Driver code if __name__ == "__main__" : string = "geeksforgeeks"; length = len(string); l = 5; r = 7; print(reverse(string, length, l, r)); # This code is contributed by AnkitRai01
C#
// C# implementation of the approach using System; class GFG { // Function to return the string after // reversing characters in the range [L, R] static String reverse(char[] str, int len, int l, int r) { // Invalid range if (l < 0 || r >= len || l > r) return "Invalid range!"; // While there are characters to swap while (l < r) { // Swap(str[l], str[r]) char c = str[l]; str[l] = str[r]; str[r] = c; l++; r--; } return String.Join("",str); } // Driver code public static void Main (String[] args) { String str = "geeksforgeeks"; int len = str.Length; int l = 5, r = 7; Console.WriteLine(reverse(str.ToCharArray(), len, l, r)); } } // This code is contributed by 29AjayKumar
Javascript
<script> // Javascript implementation of the approach // Function to return the string after // reversing characters in the range [L, R] function reverse(str, len, l, r) { // Invalid range if (l < 0 || r >= len || l > r) return "Invalid range!"; // While there are characters to swap while (l < r) { // Swap(str[l], str[r]) let c = str[l]; str[l] = str[r]; str[r] = c; l++; r--; } return str.join(""); } let str = "geeksforgeeks"; let len = str.length; let l = 5, r = 7; document.write(reverse(str.split(''), len, l, r)); // This code is contributed by divyeshrabadiya07. </script>
Producción:
geeksrofgeeks
Publicación traducida automáticamente
Artículo escrito por koulick_sadhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA