Invierta la string dada en el rango [L, R]

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: 
 

  1. Si el rango no es válido, es decir, L < 0 o R ≥ len o L > R , imprima la string original.
  2. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *