Given a large integer as a string str, the task is find the number of matchsticks required to represent it.
Examples:
Input: str = “56”
Output: 11
5 sticks are required to represent 5 and
6 sticks are required to represent 6.
Input: str = “548712458645878”
Output: 74
Approach: Store the count of match sticks required to represent every digit from 0 to 9 in an array sticks[]. Now traverse the given string digit by digit and add the count of sticks required for the current digit.
Below is the implementation of the above approach:
C++
// C++ implementation of the approach#include <bits/stdc++.h>using namespace std;// stick[i] stores the count of sticks// required to represent the digit iconst int sticks[] = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 };// Function to return the count of// matchsticks required to represent// the given numberint countSticks(string str, int n){ int cnt = 0; // For every digit of the given number for (int i = 0; i < n; i++) { // Add the count of sticks required // to represent the current digit cnt += (sticks[str[i] - '0']); } return cnt;}// Driver codeint main(){ string str = "56"; int n = str.length(); cout << countSticks(str, n); return 0;} |
Java
// Java implementation of the approachimport java.util.*;class GFG {// stick[i] stores the count of sticks// required to represent the digit istatic int sticks[] = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 };// Function to return the count of// matchsticks required to represent// the given numberstatic int countSticks(String str, int n){ int cnt = 0; // For every digit of the given number for (int i = 0; i < n; i++) { // Add the count of sticks required // to represent the current digit cnt += (sticks[str.charAt(i) - '0']); } return cnt;}// Driver codepublic static void main(String []args) { String str = "56"; int n = str.length(); System.out.println(countSticks(str, n));}}// This code is contributed by 29AjayKumar |
Python3
# Python3 implementation of the approach # stick[i] stores the count of sticks # required to represent the digit i sticks = [ 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 ]; # Function to return the count of # matchsticks required to represent # the given number def countSticks(string, n) : cnt = 0; # For every digit of the given number for i in range(n) : # Add the count of sticks required # to represent the current digit cnt += (sticks[ord(string[i]) - ord('0')]); return cnt; # Driver code if __name__ == "__main__" : string = "56"; n = len(string); print(countSticks(string, n)); # This code is contributed by AnkitRai01 |
C#
// C# implementation of the approachusing System; class GFG {// stick[i] stores the count of sticks// required to represent the digit istatic int []sticks = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 };// Function to return the count of// matchsticks required to represent// the given numberstatic int countSticks(String str, int n){ int cnt = 0; // For every digit of the given number for (int i = 0; i < n; i++) { // Add the count of sticks required // to represent the current digit cnt += (sticks[str[i] - '0']); } return cnt;}// Driver codepublic static void Main(String []args) { String str = "56"; int n = str.Length; Console.WriteLine(countSticks(str, n));}}// This code is contributed by 29AjayKumar |
Javascript
<script>// Javascript implementation of the approach// stick[i] stores the count of sticks// required to represent the digit ivar sticks = [ 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 ]// Function to return the count of// matchsticks required to represent// the given numberfunction countSticks(str, n){ var cnt = 0; // For every digit of the given number for (var i = 0; i < n; i++) { // Add the count of sticks required // to represent the current digit cnt += (sticks[str[i] - '0']); } return cnt;}// Driver codevar str = "56";var n = str.length;document.write(countSticks(str, n));// This code is contributed by rutvik_56.</script> |
11
Time Complexity: O(n)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

