Find the number of players who roll the dice when the dice output sequence is given

• Last Updated : 21 Jun, 2022

Given a string S and a number X. There are M players who roll the dice. A player keeps on rolling the dice until he gets a number other than X. In the string S, S[i] represents the number at ith roll of a dice. The task is to find M. Note that the last character in S will never be X.
Examples:

Input: s = “3662123”, X = 6
Output:
First player rolls and gets 3.
Second player rolls and gets 6, 6 and 2.
Third player rolls and gets 1.
Fourth player rolls and gets 2.
Fifth player rolls and gets 3.
Input: s = “1234223”, X = 2
Output:

Approach: Iterate in the string and count the characters which are not X. The number of characters which are not X will be the number of players.
Below is the implementation of the above approach:

C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `// Function to return the number of players``int` `findM(string s, ``int` `x)``{` `    ``// Initialize cnt as 0``    ``int` `cnt = 0;` `    ``// Iterate in the string``    ``for` `(``int` `i = 0; i < s.size(); i++) {` `        ``// Check for numbers other than x``        ``if` `(s[i] - ``'0'` `!= x)``            ``cnt++;``    ``}``    ``return` `cnt;``}` `// Driver code``int` `main()``{``    ``string s = ``"3662123"``;``    ``int` `x = 6;``    ``cout << findM(s, x);` `    ``return` `0;``}`

Java

 `// Java implementation of the approach``import` `java.util.*;` `class` `GFG``{` `// Function to return the number of players``static` `int` `findM(String s, ``int` `x)``{` `    ``// Initialize cnt as 0``    ``int` `cnt = ``0``;` `    ``// Iterate in the string``    ``for` `(``int` `i = ``0``; i < s.length(); i++)``    ``{` `        ``// Check for numbers other than x``        ``if` `(s.charAt(i) - ``'0'` `!= x)``            ``cnt++;``    ``}``    ``return` `cnt;``}` `// Driver code``public` `static` `void` `main(String args[])``{``    ``String s = ``"3662123"``;``    ``int` `x = ``6``;``    ``System.out.println(findM(s, x));` `}``}` `//This code is contributed by``// Surendra_Gangwar`

Python3

 `# Python 3 implementation of the approach` `# Function to return the number of players``def` `findM(s, x):``    ` `    ``# Initialize cnt as 0``    ``cnt ``=` `0` `    ``# Iterate in the string``    ``for` `i ``in` `range``(``len``(s)):``        ` `        ``# Check for numbers other than x``        ``if` `(``ord``(s[i]) ``-` `ord``(``'0'``) !``=` `x):``            ``cnt ``+``=` `1` `    ``return` `cnt` `# Driver code``if` `__name__ ``=``=` `'__main__'``:``    ``s ``=` `"3662123"``    ``x ``=` `6``    ``print``(findM(s, x))``    ` `# This code is contributed by``# Surendra_Gangwar`

C#

 `// C# implementation of the approach``using` `System;` `class` `GFG``{` `// Function to return the number of players``static` `int` `findM(String s, ``int` `x)``{` `    ``// Initialize cnt as 0``    ``int` `cnt = 0;` `    ``// Iterate in the string``    ``for` `(``int` `i = 0; i < s.Length; i++)``    ``{` `        ``// Check for numbers other than x``        ``if` `(s[i] - ``'0'` `!= x)``            ``cnt++;``    ``}``    ``return` `cnt;``}` `// Driver code``public` `static` `void` `Main()``{``    ``String s = ``"3662123"``;``    ``int` `x = 6;``    ``Console.Write(findM(s, x));``}``}` `// This code is contributed by``// mohit kumar`

PHP

 ``

Javascript

 ``

Output:

`5`

Time Complexity: O(N), as we are using a loop to traverse N times. Where N is the length of the string.

Auxiliary Space: O(1), as we are not using any extra.

My Personal Notes arrow_drop_up