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

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: 5
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: 4
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 <bits/stdc++.h>using namespace std;// Function to return the number of playersint 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 codeint main(){ string s = "3662123"; int x = 6; cout << findM(s, x); return 0;} |
Java
// Java implementation of the approachimport java.util.*;class GFG{// Function to return the number of playersstatic 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 codepublic 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 playersdef 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 codeif __name__ == '__main__': s = "3662123" x = 6 print(findM(s, x)) # This code is contributed by# Surendra_Gangwar |
C#
// C# implementation of the approachusing System;class GFG{// Function to return the number of playersstatic 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 codepublic static void Main(){ String s = "3662123"; int x = 6; Console.Write(findM(s, x));}}// This code is contributed by// mohit kumar |
PHP
<?php// PHP implementation of the approach // Function to return the number of players function findM($s, $x) { // Initialize cnt as 0 $cnt = 0; // Iterate in the string for ($i = 0; $i < strlen($s); $i++) { // Check for numbers other than x if (ord($s[$i]) - ord('0') != $x) $cnt++; } return $cnt; } // Driver code $s = "3662123"; $x = 6; echo findM($s, $x); // This code is contributed by Ryuga?> |
Javascript
<script>// javascript implementation of the approach // Function to return the number of players function findM( s , x) { // Initialize cnt as 0 var cnt = 0; // Iterate in the string for (i = 0; i < s.length; i++) { // Check for numbers other than x if (s.charCodeAt(i) - '0'.charCodeAt(0) != x) cnt++; } return cnt; } // Driver code var s = "3662123"; var x = 6; document.write(findM(s, x));// This code contributed by Rajput-Ji </script> |
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.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!


