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 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> |
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!