Encuentre el entero par de mayor valor que es una substring no vacía de S

Dada una string S de tamaño N , que representa un entero grande. La tarea es encontrar el entero par de mayor valor , que es una substring no vacía de S. Si no se puede formar un entero par, devuelva una string vacía.

Ejemplos:

Entrada: S = “4206”
Salida: “4206”
Explicación: “4206” ya es un número par.

Entrada: S = «23»
Salida: «2»
Explicación: «Las únicas substrings no vacías son «2», «3» y «23». “2” es el único número par.

Entrada: S = «17»
Salida: «»
Explicación: No hay una substring de valor par en la string dada

 

Enfoque: la tarea se puede resolver encontrando el primer carácter par de la derecha , digamos, se encuentra en un índice ‘ idx ‘. La substring no vacía de valor par más grande
resultante sería la substring de S en el rango [0, idx] .

A continuación se muestra la implementación del enfoque anterior:

C++

// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the largest even valued
// substring
void get(string& s)
{
    int N = s.length();
    int idx = -1;
 
    // Finding the rightmost even character
    for (int i = N - 1; i >= 0; i--) {
        if ((s[i] - '0') % 2 == 0) {
            idx = i;
            break;
        }
    }
 
    if (idx == -1)
        cout << "";
    else
        cout << s.substr(0, idx + 1);
}
 
// Driver Code
int main()
{
    string S = "4206";
    get(S);
    return 0;
}

Java

// Java program for the above approach
import java.io.*;
import java.lang.*;
import java.util.*;
 
class GFG {
 
  // Function to find the largest even valued
  // substring
  static void get(String s)
  {
    int N = s.length();
    int idx = -1;
 
    // Finding the rightmost even character
    for (int i = N - 1; i >= 0; i--) {
      if ((s.charAt(i) - '0') % 2 == 0) {
        idx = i;
        break;
      }
    }
 
    if (idx == -1)
      System.out.print("");
    else
      System.out.print(s.substring(0, idx + 1));
  }
 
  // Driver Code
  public static void main (String[] args) {
    String S = "4206";
    get(S);
  }
}
 
// This code is contributed by hrithikgarg03188.

Python3

# Python code for the above approach
 
# Function to find the largest even valued
# substring
def get(s):
    N = len(s);
    idx = -1;
 
    # Finding the rightmost even character
    for i in range(N - 1, 0, -1):
        if ((ord(s[i]) - ord('0')) % 2 == 0):
            idx = i;
            break;
 
    if (idx == -1):
        print("");
    else:
        print(s[0: idx + 1]);
 
# Driver Code
S = "4206";
get(S);
 
# This code is contributed by gfgking

C#

// C# program for the above approach
using System;
class GFG {
 
  // Function to find the largest even valued
  // substring
  static void get(string s)
  {
    int N = s.Length;
    int idx = -1;
 
    // Finding the rightmost even character
    for (int i = N - 1; i >= 0; i--) {
      if ((s[i] - '0') % 2 == 0) {
        idx = i;
        break;
      }
    }
 
    if (idx == -1)
      Console.Write("");
    else
      Console.Write(s.Substring(0, idx + 1));
  }
 
  // Driver Code
  public static void Main () {
    string S = "4206";
    get(S);
  }
}
 
// This code is contributed by Samim Hossain Mondal.

Javascript

<script>
    // JavaScript code for the above approach
 
    // Function to find the largest even valued
    // substring
    function get(s)
    {
        let N = s.length;
        let idx = -1;
 
        // Finding the rightmost even character
        for (let i = N - 1; i >= 0; i--)
        {
            if ((s[i].charCodeAt(0) - '0'.charCodeAt(0)) % 2 == 0)
            {
                idx = i;
                break;
            }
        }
 
        if (idx == -1)
            document.write("");
        else
            document.write(s.slice(0, idx + 1));
    }
 
    // Driver Code
    let S = "4206";
    get(S);
 
   // This code is contributed by Potta Lokesh
</script>
Producción

4206

Complejidad de Tiempo : O(N)
Espacio Auxiliar : O(1) 

Publicación traducida automáticamente

Artículo escrito por sauarbhyadav 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 *