Dada una string s y un carácter c , encuentre si todas las apariciones de c aparecen juntas en s o no. Si el carácter c no aparece en la string, la respuesta es verdadera.
Ejemplos
Input: s = "1110000323", c = '1' Output: Yes All occurrences of '1' appear together in "1110000323" Input: s = "3231131", c = '1' Output: No All occurrences of 1 are not together Input: s = "abcabc", c = 'c' Output: No All occurrences of 'c' are not together Input: s = "ababcc", c = 'c' Output: Yes All occurrences of 'c' are together
La idea es recorrer la string dada, tan pronto como encontremos una ocurrencia de c, seguimos recorriendo hasta encontrar un carácter que no sea c. También establecemos una bandera para indicar que se ven una ocurrencia más de c. Si vemos c nuevamente y se establece la bandera, devolvemos falso.
C++
// C++ program to find if all occurrences // of a character appear together in a string. #include <iostream> #include <string> using namespace std; bool checkIfAllTogether(string s, char c) { // To indicate if one or more occurrences // of 'c' are seen or not. bool oneSeen = false; // Traverse given string int i = 0, n = s.length(); while (i < n) { // If current character is same as c, // we first check if c is already seen. if (s[i] == c) { if (oneSeen == true) return false; // If this is very first appearance of c, // we traverse all consecutive occurrences. while (i < n && s[i] == c) i++; // To indicate that character is seen once. oneSeen = true; } else i++; } return true; } // Driver program int main() { string s = "110029"; if (checkIfAllTogether(s, '1')) cout << "Yes" << endl; else cout << "No" << endl; return 0; }
Java
// Java program to find if all // occurrences of a character // appear together in a string. import java.io.*; class GFG { static boolean checkIfAllTogether(String s, char c) { // To indicate if one or more // occurrences of 'c' are seen // or not. boolean oneSeen = false; // Traverse given string int i = 0, n = s.length(); while (i < n) { // If current character is // same as c, we first check // if c is already seen. if (s.charAt(i) == c) { if (oneSeen == true) return false; // If this is very first // appearance of c, we // traverse all consecutive // occurrences. while (i < n && s.charAt(i) == c) i++; // To indicate that character // is seen once. oneSeen = true; } else i++; } return true; } // Driver Code public static void main(String[] args) { String s = "110029"; if (checkIfAllTogether(s, '1')) System.out.println("Yes"); else System.out.println("No"); } } // This code is contributed by Sam007.
Python3
# Python program to find # if all occurrences # of a character appear # together in a string. # function to find # if all occurrences # of a character appear # together in a string. def checkIfAllTogether(s, c) : # To indicate if one or # more occurrences of # 'c' are seen or not. oneSeen = False # Traverse given string i = 0 n = len(s) while (i < n) : # If current character # is same as c, # we first check # if c is already seen. if (s[i] == c) : if (oneSeen == True) : return False # If this is very first # appearance of c, # we traverse all # consecutive occurrences. while (i < n and s[i] == c) : i = i + 1 # To indicate that character # is seen once. oneSeen = True else : i = i + 1 return True # Driver Code s = "110029"; if (checkIfAllTogether(s, '1')) : print ("Yes\n") else : print ("No\n") # This code is contributed by # Manish Shaw (manishshaw1)
C#
// C# program to find if all occurrences // of a character appear together in a // string. using System; public class GFG { static bool checkIfAllTogether(string s, char c) { // To indicate if one or more // occurrences of 'c' are seen // or not. bool oneSeen = false; // Traverse given string int i = 0, n = s.Length; while (i < n) { // If current character is // same as c, we first check // if c is already seen. if (s[i] == c) { if (oneSeen == true) return false; // If this is very first // appearance of c, we // traverse all consecutive // occurrences. while (i < n && s[i] == c) i++; // To indicate that character // is seen once. oneSeen = true; } else i++; } return true; } // Driver code public static void Main() { string s = "110029"; if (checkIfAllTogether(s, '1')) Console.Write( "Yes" ); else Console.Write( "No" ); } } // This code is contributed by Sam007.
PHP
<?php // PHP program to find // if all occurrences // of a character appear // together in a string. // function to find // if all occurrences // of a character appear // together in a string. function checkIfAllTogether($s, $c) { // To indicate if one or // more occurrences of // 'c' are seen or not. $oneSeen = false; // Traverse given string $i = 0; $n = strlen($s); while ($i < $n) { // If current character // is same as c, // we first check // if c is already seen. if ($s[$i] == $c) { if ($oneSeen == true) return false; // If this is very first // appearance of c, // we traverse all // consecutive occurrences. while ($i < $n && $s[$i] == $c) $i++; // To indicate that character // is seen once. $oneSeen = true; } else $i++; } return true; } // Driver Code $s = "110029"; if (checkIfAllTogether($s, '1')) echo("Yes\n"); else echo("No\n"); // This code is contributed by Ajit. ?>
Javascript
<script> // Javascript program to find if all // occurrences of a character appear // together in a string. function checkIfAllTogether(s, c) { // To indicate if one or more // occurrences of 'c' are seen // or not. let oneSeen = false; // Traverse given string let i = 0, n = s.length; while (i < n) { // If current character is // same as c, we first check // if c is already seen. if (s[i] == c) { if (oneSeen == true) return false; // If this is very first // appearance of c, we // traverse all consecutive // occurrences. while (i < n && s[i] == c) i++; // To indicate that character // is seen once. oneSeen = true; } else i++; } return true; } // Driver code let s = "110029"; if (checkIfAllTogether(s, '1')) document.write("Yes"); else document.write("No"); // This code is contributed by mukesh07 </script>
Producción:
Yes
Complejidad de tiempo: O(n), donde n es el número de caracteres de la string.
Espacio Auxiliar: O(1),
Sugiera si alguien tiene una mejor solución que sea más eficiente en términos de espacio y tiempo.
Este artículo es una contribución de Aarti_Rathi . Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.