Skip to content
Related Articles

Related Articles

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

Improve Article
Save Article
  • Last Updated : 21 Jun, 2022
Improve Article
Save Article

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 <bits/stdc++.h>
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




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

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
Related Articles

Start Your Coding Journey Now!