Manera rápida de verificar si todos los caracteres de una string son iguales

Dada una string, compruebe si todos los caracteres de la string son iguales o no.

Ejemplos: 

Input : s = "geeks"
Output : No

Input : s = "gggg" 
Output : Yes

Manera simple

Para encontrar si una string tiene todos los mismos caracteres. Recorra toda la string desde el índice 1 y verifique si ese carácter coincide con el primer carácter de la string o no. En caso afirmativo, haga coincidir hasta el tamaño de la string. Si no, entonces rompa el ciclo. 

C++

// C++ program to find whether the string
// has all same characters or not.
#include <iostream>
using namespace std;
 
bool allCharactersSame(string s)
{
    int n = s.length();
    for (int i = 1; i < n; i++)
        if (s[i] != s[0])
            return false;
 
    return true;
}
 
// Driver code
int main()
{
    string s = "aaa";
    if (allCharactersSame(s))
        cout << "Yes";
    else
        cout << "No";
 
    return 0;
}

Java

// Java program to find whether the String
// has all same characters or not.
import java.io.*;
 
public class GFG{
 
static boolean allCharactersSame(String s)
{
    int n = s.length();
    for (int i = 1; i < n; i++)
        if (s.charAt(i) != s.charAt(0))
            return false;
         
    return true;
}
 
// Driver code
    static public void main (String[] args){
        String s = "aaa";
    if (allCharactersSame(s))
        System.out.println("Yes");
    else
        System.out.println("No");
         
    }
}
 
// This Code is contributed by vt_m.

Python3

# Python3 program to find whether the string
# has all same characters or not.
 
# Function to check the string has
# all same characters or not .
def allCharactersSame(s) :
    n = len(s)
    for i in range(1, n) :
        if s[i] != s[0] :
            return False
 
    return True
 
# Driver code
if __name__ == "__main__" :
     
    s = "aaa"
    if allCharactersSame(s) :
        print("Yes")
    else :
        print("No")
 
# This code is contributed by ANKITRAI1

C#

// C# program to find whether the string
// has all same characters or not.
using System;
 
public class GFG{
 
static bool allCharactersSame(string s)
{
    int n = s.Length;
    for (int i = 1; i < n; i++)
        if (s[i] != s[0])
            return false;
 
    return true;
}
 
// Driver code
    static public void Main (String []args){
        string s = "aaa";
    if (allCharactersSame(s))
        Console.WriteLine("Yes");
    else
        Console.WriteLine("No");
         
    }
}
 
// This code is contributed by vt_m.

PHP

<?php
// PHP program to find whether
// the string has all same
// characters or not.
function allCharactersSame($s)
{
    $n = strlen($s);
    for ($i = 1; $i < $n; $i++)
        if ($s[$i] != $s[0])
            return false;
 
    return true;
}
 
// Driver code
$s = "aaa";
if (allCharactersSame($s))
echo "Yes";
else
echo "No";
 
// This code is contributed
// by ChitraNayal
?>

Javascript

<script>
    // Javascript program to find whether the string
    // has all same characters or not.
     
    function allCharactersSame(s)
    {
        let n = s.length;
        for (let i = 1; i < n; i++)
            if (s[i] != s[0])
                return false;
 
        return true;
    }
     
    let s = "aaa";
    if (allCharactersSame(s))
        document.write("Yes");
    else
        document.write("No");
         
        // This code is contributed by suresh07.
</script>
Producción

Yes

Complejidad de tiempo: O(n)

Aquí n es la longitud de la string.

Espacio Auxiliar: O(1)

Como espacio adicional constante se utiliza.

Quick Way (no en términos de complejidad de tiempo, sino en términos de número de líneas de código)

La idea es usar find_first_not_of() en C++ STL. 
find_first_not_of() encuentra y devuelve la posición del primer carácter que no coincide con un carácter específico (o cualquiera de los caracteres especificados en el caso de una string). 

C++

// A quick C++ program to find whether the
// string has all same characters or not.
#include <iostream>
using namespace std;
 
bool allCharactersSame(string s)
{
    return (s.find_first_not_of(s[0]) == string::npos);
}
 
// Driver code
int main()
{
    string s = "aaa";
    if (allCharactersSame(s))
        cout << "Yes";
    else
        cout << "No";
 
    return 0;
}
Producción

Yes

Otra forma es usando un SET

La idea es agregar todos los caracteres de una string a un conjunto. Después de agregar, si el tamaño del conjunto es mayor que 1, significa que hay diferentes caracteres presentes, si el tamaño es exactamente 1, significa que solo hay un carácter único.

A continuación se muestra la implementación de la lógica anterior.

C++

// C++ program for above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to check is all the
// characters in string are or not
void allCharactersSame(string s)
{
    set <char> s1;
   
    // Insert characters in the set
    for ( int i=0 ; i < s.length() ; i++)
        s1.insert(s[i]);
     
    // If all characters are same
    // Size of set will always be 1
    if ( s1.size() == 1 )
        cout << "YES";
    else
        cout << "NO";
}
 
// Driver code
int main()
{
    string str = "nnnn";
    allCharactersSame(str);
      return 0;
}

Java

// Java program for above approach
import java.io.*;
import java.util.*;
 
class GFG{
     
// Function to check is all the
// characters in string are or not
public static void allCharactersSame(String s)
{
    Set<Character> s1 = new HashSet<Character>();
     
    // Insert characters in the set
    for(int i = 0; i < s.length(); i++)
        s1.add(s.charAt(i));
      
    // If all characters are same
    // Size of set will always be 1
    if (s1.size() == 1)
        System.out.println("YES");
    else
        System.out.println("NO");
}
 
// Driver Code
public static void main(String[] args)
{
    String str = "nnnn";
     
    allCharactersSame(str);
}
}
 
// This code is contributed by divyeshrabadiya07

Python3

# Python3 program for
# the above approach
 
# Function to check is
# all the characters in
# string are or not
def allCharactersSame(s):
   
    s1 = []
 
    # Insert characters in
    # the set
    for i in range(len(s)):
        s1.append(s[i])
 
    # If all characters are same
    # Size of set will always be 1
    s1 = list(set(s1))
    if(len(s1) == 1):
        print("YES")
    else:
        print("NO")
 
# Driver code
Str = "nnnn"
allCharactersSame(Str)
 
# This code is contributed by avanitrachhadiya2155

C#

// C# program for above approach
using System;
using System.Collections.Generic;
 
class GFG{
     
// Function to check is all the
// characters in string are or not
static void allCharactersSame(string s)
{
    HashSet<char> s1 = new HashSet<char>();
      
    // Insert characters in the set
    for(int i = 0; i < s.Length; i++)
        s1.Add(s[i]);
       
    // If all characters are same
    // Size of set will always be 1
    if (s1.Count == 1)
        Console.WriteLine("YES");
    else
        Console.WriteLine("NO");
}
 
// Driver code 
static void Main()
{
    string str = "nnnn";
     
    allCharactersSame(str);
}
}
 
// This code is contributed by divyesh072019

Javascript

<script>
// Javascript program for above approach
 
    // Function to check is all the
    // characters in string are or not
    function allCharactersSame(s)
    {
        let s1 = new Set();
        // Insert characters in the set
    for(let i = 0; i < s.length; i++)
    {   
        s1.add(s[i]);
     }
      
    // If all characters are same
    // Size of set will always be 1
    if (s1.size == 1)
        document.write("YES");
    else
        document.write("NO");
    }
     
    // Driver Code
    let str = "nnnn";
    allCharactersSame(str);
     
    //This code is contributed by rag2127
     
</script>
Producción

YES

Complejidad de tiempo: O (nLogn)

Como la inserción en un conjunto lleva tiempo Logn y estamos insertando n elementos.

Espacio Auxiliar: O(n)

El espacio adicional se utiliza para almacenar los elementos en el conjunto.

 Este artículo es una contribución de Jatin Goyal . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

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