Check if all occurrences of a character appear together - GeeksforGeeks

04 May, 2021
Given a string s and a character c, find if all occurrences of c appear together in s or not. If the character c does not appear in the string at all, the answer is true.
Examples 
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
The idea is to traverse given string, as soon as we find an occurrence of c, we keep traversing until we find a character which is not c. We also set a flag to indicate that one more occurrences of c are seen. If we see c again and flag is set, then we return false.  
C++
Java
Python3
C#
PHP
Javascript
// 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 programint main(){    string s = "110029";    if (checkIfAllTogether(s, '1'))        cout << "Yes" << endl;    else        cout << "No" << endl;    return 0;}
// 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.
# 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 Codes = "110029";if (checkIfAllTogether(s, '1')) :    print ("Yes\n")else :    print ("No\n") # This code is contributed by# Manish Shaw (manishshaw1)
// 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 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.?>
<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 codelet s = "110029";       if (checkIfAllTogether(s, '1'))    document.write("Yes");else    document.write("No");     // This code is contributed by mukesh07 </script>
Output: 
Yes
The complexity of above program is O(n). 
Sam007
jit_t
manishshaw1
mukesh07
Arrays
Searching
Strings
Arrays
Searching
Strings
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Stack Data Structure (Introduction and Program)
Top 50 Array Coding Problems for Interviews
Multidimensional Arrays in Java
Introduction to Arrays
Linear Search
Binary Search
Linear Search
Maximum and minimum of an array using minimum number of comparisons
Find the Missing Number
K'th Smallest/Largest Element in Unsorted Array | Set 1