Comprobar si una string consta solo de caracteres especiales

Dada la string str de longitud N , la tarea es verificar si la string dada contiene solo caracteres especiales o no. Si la string contiene solo caracteres especiales, imprima » Sí» . De lo contrario, escriba “ No” .

Ejemplos:

Entrada: str = “@#$&%!~”
Salida:
Explicación: 
La string dada contiene solo caracteres especiales. 
Por lo tanto, la salida es Sí.

Entrada: str = “Geeks4Geeks@#”
Salida: No
Explicación: 
La string dada contiene letras, números y caracteres especiales. 
Por lo tanto, la salida es No.

 

Enfoque ingenuo: itere sobre la string y verifique si la string contiene solo caracteres especiales o no. Siga los pasos a continuación para resolver el problema:

  • Recorra la string y para cada carácter, verifique si su valor ASCII se encuentra en los rangos [32, 47] , [58, 64] , [91, 96] o [123, 126] . Si se determina que es cierto, es un carácter especial.
  • Imprima si todos los caracteres se encuentran en uno de los rangos antes mencionados. De lo contrario, imprima No.

Complejidad temporal: O(N)
Espacio auxiliar: O(1)

Enfoque de uso eficiente del espacio: la idea es utilizar expresiones regulares para optimizar el enfoque anterior. Siga los pasos a continuación:

  • Cree la siguiente expresión regular para verificar si la string dada contiene solo caracteres especiales o no.

expresión regular = «[^a-zA-Z0-9]+»

dónde,

  • [^a-zA-Z0-9] representa solo caracteres especiales.
  • + representa una o más veces.
  • Haga coincidir la string dada con la expresión regular usando Pattern.matcher() en Java
  • Imprima si la string coincide con la expresión regular dada. De lo contrario , imprima No.

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

C++

// C++ program to check if the string
// contains only special characters
#include <iostream>
#include <regex>
using namespace std;
 
// Function to check if the string contains only special characters.
void onlySpecialCharacters(string str)
{
 
  // Regex to check if the string contains only special characters.
  const regex pattern("[^a-zA-Z0-9]+");
 
 
  // If the string
  // is empty then print "No"
  if (str.empty())
  {
     cout<< "No";
     return ;
  }
 
  // Print "Yes" if the string contains only special characters
  // matched the ReGex
  if(regex_match(str, pattern))
  {
    cout<< "Yes";
  }
  else
  {
    cout<< "No";
  }
}
 
// Driver Code
int main()
{
   
  // Given string str
  string str = "@#$&%!~";
  onlySpecialCharacters(str) ;
 
  return 0;
}
 
// This code is contributed by yuvraj_chandra

Java

// Java program to check if the string
// contains only special characters
 
import java.util.regex.*;
class GFG {
 
    // Function to check if a string
    // contains only special characters
    public static void onlySpecialCharacters(
        String str)
    {
 
        // Regex to check if a string contains
        // only special characters
        String regex = "[^a-zA-Z0-9]+";
 
        // Compile the ReGex
        Pattern p = Pattern.compile(regex);
 
        // If the string is empty
        // then print No
        if (str == null) {
            System.out.println("No");
            return;
        }
 
        // Find match between given string
        // & regular expression
        Matcher m = p.matcher(str);
 
        // Print Yes If the string matches
        // with the Regex
        if (m.matches())
            System.out.println("Yes");
        else
            System.out.println("No");
    }
 
    // Driver Code
    public static void main(String args[])
    {
        // Given string str
        String str = "@#$&%!~";
 
        // Function Call
        onlySpecialCharacters(str);
    }
}

Python3

# Python program to check if the string
# contains only special characters
import re
 
# Function to check if a string
# contains only special characters
def onlySpecialCharacters(Str):
 
    # Regex to check if a string contains
    # only special characters
    regex = "[^a-zA-Z0-9]+"
 
    # Compile the ReGex
    p=re.compile(regex)
 
    # If the string is empty
    # then print No
    if(len(Str) == 0):
        print("No")
        return
 
    # Print Yes If the string matches
    # with the Regex
    if(re.search(p, Str)):
        print("Yes")
    else:
        print("No")
 
# Driver Code
 
# Given string str
Str = "@#$&%!~"
 
# Function Call
onlySpecialCharacters(Str)
 
# This code is contributed by avanitrachhadiya2155

C#

// C# program to check if
// the string contains only
// special characters
using System;
using System.Text.RegularExpressions; 
class GFG{
 
// Function to check if a string
// contains only special characters
public static void onlySpecialchars(String str)
{
  // Regex to check if a string
  // contains only special
  // characters
  String regex = "[^a-zA-Z0-9]+";
 
  // Compile the ReGex
  Regex rgex = new Regex(regex); 
 
  // If the string is empty
  // then print No
  if (str == null)
  {
    Console.WriteLine("No");
    return;
  }
 
  // Find match between given
  // string & regular expression
  MatchCollection matchedAuthors =
                  rgex.Matches(str);   
 
  // Print Yes If the string matches
  // with the Regex
  if (matchedAuthors.Count != 0)
    Console.WriteLine("Yes");
  else
    Console.WriteLine("No");
}
 
// Driver Code
public static void Main(String []args)
{
  // Given string str
  String str = "@#$&%!~";
 
  // Function Call
  onlySpecialchars(str);
}
}
 
// This code is contributed by Princi Singh

Javascript

<script>
 
      // JavaScript program to check if
      // the string contains only
      // special characters
       
      // Function to check if a string
      // contains only special characters
      function onlySpecialchars(str)
      {
        // Regex to check if a string
        // contains only special
        // characters
        var regex = /^[^a-zA-Z0-9]+$/;
 
        // If the string is empty
        // then print No
        if (str.length < 1) {
          document.write("No");
          return;
        }
 
        // Find match between given
        // string & regular expression
        var matchedAuthors = regex.test(str);
 
        // Print Yes If the string matches
        // with the Regex
        if (matchedAuthors) document.write("Yes");
        else document.write("No");
      }
 
      // Driver Code
      
     // Given string str
      var str = "@#$&%!~";
      
     // Function Call
      onlySpecialchars(str);
       
 </script>
Producción: 

Yes

 

Complejidad temporal: O(N)
Espacio auxiliar: O(1)

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 *