给定一个大整数作为字符串str ,任务是找到表示该整数所需的火柴数量。
例子:
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
方法:将表示0到9的每个数字所需的火柴计数存储在阵列stick []中。现在逐位遍历给定的字符串,并添加当前数字所需的支数。
下面是上述方法的实现:
C++
// C++ implementation of the approach
#include
using namespace std;
// stick[i] stores the count of sticks
// required to represent the digit i
const int sticks[] = { 6, 2, 5, 5, 4, 5,
6, 3, 7, 6 };
// Function to return the count of
// matchsticks required to represent
// the given number
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 code
int main()
{
string str = "56";
int n = str.length();
cout << countSticks(str, n);
return 0;
}
Java
// Java implementation of the approach
import java.util.*;
class GFG
{
// stick[i] stores the count of sticks
// required to represent the digit i
static int sticks[] = { 6, 2, 5, 5, 4, 5,
6, 3, 7, 6 };
// Function to return the count of
// matchsticks required to represent
// the given number
static 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 code
public 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 approach
using System;
class GFG
{
// stick[i] stores the count of sticks
// required to represent the digit i
static int []sticks = { 6, 2, 5, 5, 4, 5,
6, 3, 7, 6 };
// Function to return the count of
// matchsticks required to represent
// the given number
static 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 code
public static void Main(String []args)
{
String str = "56";
int n = str.Length;
Console.WriteLine(countSticks(str, n));
}
}
// This code is contributed by 29AjayKumar
Javascript
输出:
11
时间复杂度: O(n)