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++
// CPP 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. ?> |
Output:
Yes
The complexity of above program is O(n).
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
Recommended Posts:
- Number of permutations of a string in which all the occurrences of a given character occurs together
- Map every character of one string to another such that all occurrences are mapped to the same character
- Replace all occurrences of character X with character Y in given string
- Largest sub-string where all the characters appear at least K times
- Largest substring where all characters appear at least K times | Set 2
- Count of all possible Paths in a Tree such that Node X does not appear before Node Y
- Given an array of size n and a number k, find all elements that appear more than n/k times
- Remove all occurrences of a character in a string
- Minimize ASCII values sum after removing all occurrences of one character
- Remove all occurrences of a character in a string | Recursive approach
- Array elements that appear more than once
- Remove characters that appear more than k times
- Remove elements that appear strictly less than k times
- Remove elements from the array which appear more than k times
- Distinct state codes that appear in a string as contiguous sub-strings
- Maximum sum possible for a sub-sequence such that no two elements appear at a distance < K in the array
- Count words that appear exactly two times in an array of words
- Given a sequence of words, print all anagrams together | Set 2
- Minimum Swaps required to group all 1's together
- Minimum swaps required to bring all elements less than or equal to k together
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

