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. Â
Implementation:
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 programint 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 Codes = "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 codelet s = "110029";       if (checkIfAllTogether(s, '1'))    document.write("Yes");else    document.write("No");     // This code is contributed by mukesh07Â
</script> |
Output:Â
Yes
Complexity Analysis:
- Time Complexity: O(n), where n is the number of characters in the string.Â
- Auxiliary Space: O(1),Â
Please suggest if someone has a better solution which is more efficient in terms of space and time.
This article is contributed by Aarti_Rathi.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!
