找到通过插入给定数字形成的最小数字

找到通过插入给定数字形成的最小数字

在给定的数字中插入一个数字意味着在给定的数字中添加一个新的数字,可以是在数字的前面、后面或者中间。我们已经给出了一个数字和一个数字,并且必须以尽可能小的方式将该数字添加到数字中。为了方便插入操作,我们将把数字转换为字符串。此外,给定的数字也可以是负数,因此我们必须考虑这种情况。

示例示例

Input1

的中文翻译为:

输入1

Given number: 124
Given digit: 3
Output: 1234

登录后复制

Explanation − 我们有四个地方可以添加给定的数字,结果可以是3124、1324、1234、1243。在这四个中,倒数第二个是最小的。

Input2

的中文翻译为:

输入2

Given number: -124
Given digit: 3
Output: -3124

登录后复制

Explanation − 我们有四个地方可以添加给定的数字,结果可以是-3124,-1324,-1234,-1243。在这四个中,第一个是最小的。

Naive Approach

的中文翻译为:

天真的方法

我们现在已经看过了示例,接下来让我们看一下我们将执行的解决问题的步骤 -

  • 首先,我们将检查当前数字是正数还是负数。

  • 如果当前数字为负数,我们将将其标记为负数变量,并将当前数字设为正数。

  • 之后,我们将把当前的数字转换为字符串,并根据当前数字的正负调用函数basis。

  • 在这些函数中,我们将尝试在每个位置上适配数字,并根据正数或负数来检查当前数字是较小还是较大。

  • 如果当前数字是正数,我们将尝试找到最小的数字并返回。

  • 否则,我们将找到最大的数字,并通过乘以-1来返回它。

Example

的中文翻译为:

示例

#include
using namespace std;
int findMin(string str, int d){
string ans = str + to_string(d); // variable to store the answer
// traversing over the string
for(int i=0; i