📜  使用字符串中两个数字之间的“+”或“*”符号计算最大值

📅  最后修改于: 2022-05-13 01:57:07.367000             🧑  作者: Mango

使用字符串中两个数字之间的“+”或“*”符号计算最大值

给定字符串数字,任务是从字符串中找出最大值,您可以在任意两个数字之间添加“+”或“*”号。
例子:

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