使用字符串中两个数字之间的“+”或“*”符号计算最大值
给定字符串数字,任务是从字符串中找出最大值,您可以在任意两个数字之间添加“+”或“*”号。
例子:
Input : 01231
Output :
((((0 + 1) + 2) * 3) + 1) = 10
In above manner, we get the maximum value i.e. 10
Input : 891
Output :73
As 8*9*1 = 72 and 8*9+1 = 73.So, 73 is maximum.
提问:脸书
任务非常简单,因为我们可以通过将所有值相乘来获得最大值,但重点是处理 0 和 1 的情况,即在与 0 和 1 相乘时,与在 0 和 1 相加时相比,我们得到的值较低。
因此,在任何两个数字之间使用“*”符号(包含 0 和 1 的数字除外),如果任何数字是 0 和 1,则使用“+”。
C++
// C++ program to find maximum value
#include
using namespace std;
// Function to calculate the value
int calcMaxValue(string str)
{
// Store first character as integer
// in result
int res = str[0] -'0';
// Start traversing the string
for (int i = 1; i < str.length(); i++)
{
// Check if any of the two numbers
// is 0 or 1, If yes then add current
// element
if (str[i] == '0' || str[i] == '1' ||
res < 2 )
res += (str[i]-'0');
// Else multiply
else
res *= (str[i]-'0');
}
// Return maximum value
return res;
}
// Drivers code
int main()
{
string str = "01891";
cout << calcMaxValue(str);
return 0;
}
Java
// Java program to find maximum value
public class GFG
{
// Method to calculate the value
static int calcMaxValue(String str)
{
// Store first character as integer
// in result
int res = str.charAt(0) -'0';
// Start traversing the string
for (int i = 1; i < str.length(); i++)
{
// Check if any of the two numbers
// is 0 or 1, If yes then add current
// element
if (str.charAt(i) == '0' || str.charAt(i) == '1' ||
res < 2 )
res += (str.charAt(i)-'0');
// Else multiply
else
res *= (str.charAt(i)-'0');
}
// Return maximum value
return res;
}
// Driver Method
public static void main(String[] args)
{
String str = "01891";
System.out.println(calcMaxValue(str));
}
}
Python3
# Python program to find maximum value
# Function to calculate the value
def calcMaxValue(str):
# Store first character as integer
# in result
res = ord(str[0]) - 48
# Start traversing the string
for i in range(1, len(str)):
# Check if any of the two numbers
# is 0 or 1, If yes then add current
# element
if(str[i] == '0' or
str[i] == '1' or res < 2):
res += ord(str[i]) - 48
else:
res *= ord(str[i]) - 48
return res
# Driver code
if __name__== "__main__":
str = "01891";
print(calcMaxValue(str));
# This code is contributed by Sairahul Jella
C#
//C# program to find maximum value
using System;
class GFG
{
// Method to calculate the value
static int calcMaxValue(String str)
{
// Store first character as integer
// in result
int res = str[0] -'0';
// Start traversing the string
for (int i = 1; i < str.Length; i++)
{
// Check if any of the two numbers
// is 0 or 1, If yes then add current
// element
if (str[i] == '0' ||
str[i] == '1' || res < 2 )
res += (str[i] - '0');
// Else multiply
else
res *= (str[i] - '0');
}
// Return maximum value
return res;
}
// Driver Code
static public void Main ()
{
String str = "01891";
Console.Write(calcMaxValue(str));
}
}
// This code is contributed by jit_t
PHP
Javascript
输出:
82