Dada una string S y un número X. Hay M jugadores que tiran los dados. Un jugador sigue tirando los dados hasta que obtiene un número distinto de X. En la string S, S[i] representa el número en el i -ésimo lanzamiento de un dado. La tarea es encontrar M . Tenga en cuenta que el último carácter en S nunca será X .
Ejemplos:
Entrada: s = “3662123”, X = 6
Salida: 5
El primer jugador lanza y obtiene 3. El
segundo jugador lanza y obtiene 6, 6 y 2.
El tercer jugador lanza y obtiene 1. El
cuarto jugador lanza y obtiene 2. El
quinto jugador lanza y obtiene 2. obtiene 3.
Entrada: s = “1234223”, X = 2
Salida: 4
Enfoque: iterar en la string y contar los caracteres que no son X . El número de personajes que no sean X será el número de jugadores.
A continuación se muestra la implementación del enfoque anterior:
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>
5
Complejidad de tiempo: O (N), ya que estamos usando un bucle para atravesar N veces. Donde N es la longitud de la string.
Espacio Auxiliar: O(1), ya que no estamos usando ningún extra.