Marque tres o más caracteres o números idénticos consecutivos

Dada la string str , la tarea es verificar si la string dada contiene 3 o más caracteres/números idénticos consecutivos o no mediante el uso de expresiones regulares
Ejemplos: 

Entrada: str = “aaa”; 
Salida: verdadero 
Explicación: 
La string dada contiene a, a, a que son caracteres idénticos consecutivos.
Entrada: str = «abc»; 
Salida: falso 
Explicación: 
La string dada contiene a, b, c que no son caracteres idénticos consecutivos.
Entrada: string = «11»; 
Salida: falso 
Explicación: 
La string dada contiene 1, 1 que no son 3 o más números idénticos consecutivos. 

Enfoque: La idea es usar la expresión regular para resolver este problema. Se pueden seguir los siguientes pasos para calcular la respuesta. 

  • Consigue la cuerda.
  • Cree una expresión regular para verificar 3 o más caracteres o números idénticos consecutivos como se menciona a continuación: 
     

expresión regular = «\\b([a-zA-Z0-9])\\1\\1+\\b»; 
 

  • Dónde: 
    • \\b representa el límite de la palabra.
    • ( representa el comienzo del grupo 1.
    • [a-zA-Z0-9] representa una letra o un dígito.
    • ) representa el final del grupo 1.
    • \\1 representa el mismo carácter que el grupo 1.
    • \\1+ representa el mismo carácter que el grupo 1 una o más veces.
    • \\b representa el límite de la palabra.
  1. Haga coincidir la string dada con la expresión regular. En Java, esto se puede hacer usando Pattern.matcher() .
  2. Devuelve verdadero si la string coincide con la expresión regular dada; de lo contrario, devuelve falso.

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

C++

// C++ program to check
// three or more consecutive identical
// characters or numbers using Regular Expression
#include <iostream>
#include <regex>
using namespace std;
 
// Function to check three or more
// consecutive identical characters or numbers.
bool isIdentical(string str)
{
 
  // Regex to check valid three or more
  // consecutive identical characters or numbers.
  const regex pattern("\\b([a-zA-Z0-9])\\1\\1+\\b");
 
 
  // If the three or more consecutive
  // identical characters or numbers
  // is empty return false
  if (str.empty())
  {
     return false;
  }
 
  // Return true if the three or more
  // consecutive identical characters or numbers
  // matched the ReGex
  if(regex_match(str, pattern))
  {
    return true;
  }
  else
  {
    return false;
  }
}
 
// Driver Code
int main()
{
   
  // Test Case 1:
  string str1 = "aaa";
  cout << isIdentical(str1) << endl;
 
  // Test Case 2:
  string str2 = "11111";
  cout << isIdentical(str2) << endl;
 
  // Test Case 3:
  string str3 = "aaab";
  cout << isIdentical(str3) << endl;
 
  // Test Case 4:
  string str4 = "abc";
  cout << isIdentical(str4) << endl;
 
  // Test Case 5:
  string str5 = "aa";
  cout << isIdentical(str5) << endl;
  return 0;
}
 
// This code is contributed by yuvraj_chandra

Java

// Java program to check three or
// more consecutive identical
// characters or numbers
// using regular expression
 
import java.util.regex.*;
class GFG {
 
    // Function to check three or
    // more consecutive identical
    // characters or numbers
    // using regular expression
    public static boolean isIdentical(String str)
    {
        // Regex to check three or
        // more consecutive identical
        // characters or numbers
        String regex
            = "\\b([a-zA-Z0-9])\\1\\1+\\b";
 
        // Compile the ReGex
        Pattern p
            = Pattern.compile(regex);
 
        // If the string is empty
        // return false
        if (str == null) {
            return false;
        }
 
        // Find match between given string
        // and regular expression
        // using Pattern.matcher()
        Matcher m = p.matcher(str);
 
        // Return if the string
        // matched the ReGex
        return m.matches();
    }
 
    // Driver code
    public static void main(String args[])
    {
 
        // Test Case 1:
        String str1 = "aaa";
        System.out.println(
            isIdentical(str1));
 
        // Test Case 2:
        String str2 = "11111";
        System.out.println(
            isIdentical(str2));
 
        // Test Case 3:
        String str3 = "aaab";
        System.out.println(
            isIdentical(str3));
 
        // Test Case 4:
        String str4 = "abc";
        System.out.println(
            isIdentical(str4));
 
        // Test Case 5:
        String str5 = "aa";
        System.out.println(
            isIdentical(str5));
    }
}

Python3

# Python3 program to check three or
# more consecutiveidentical
# characters or numbers
# using regular expression
import re
 
# Function to check three or
# more consecutiveidentical
# characters or numbers
# using regular expression
def isValidGUID(str):
 
    # Regex to check three or
    # more consecutive identical
    # characters or numbers
    regex = "\\b([a-zA-Z0-9])\\1\\1+\\b"
     
    # Compile the ReGex
    p = re.compile(regex)
 
    # If the string is empty
    # return false
    if (str == None):
        return False
 
    # Return if the string
    # matched the ReGex
    if(re.search(p, str)):
        return True
    else:
        return False
 
# Driver code
 
# Test Case 1:
str1 = "aaa"
print(isValidGUID(str1))
 
# Test Case 2:
str2 = "11111"
print(isValidGUID(str2))
 
# Test Case 3:
str3 = "aaab"
print(isValidGUID(str3))
 
# Test Case 4:
str4 = "abc"
print(isValidGUID(str4))
 
# Test Case 4:
str5 = "aa"
print(isValidGUID(str5))
 
# This code is contributed by avanitrachhadiya2155
Producción: 

true
true
false
false
false

 

Publicación traducida automáticamente

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