← Static tasks

1323. Maximum 69 Number

leetcode easy

#array#csharp#easy#leetcode#string

Task

Дано положительное целое число num, состоящее только из цифр 6 и 9.

Верните максимальное число, которое можно получить, изменив не более одной цифры (6 становится 9, а 9 становится 6).

Пример:

Input: num = 9669

Output: 9969

Explanation:

Changing the first digit results in 6669.

Changing the second digit results in 9969.

Changing the third digit results in 9699.

Changing the fourth digit results in 9666.

The maximum number is 9969.

C# solution

matched/original
public class Solution {
    public int Maximum69Number (int num) {
        char[] numArr = num.ToString().ToCharArray();
        for (int i = 0; i < numArr.Length; i++) {
            if (numArr[i] == '6') {
                numArr[i] = '9';
                break;
            }
        }
        return int.Parse(new string(numArr));
    }
}

C++ solution

auto-draft, review before submit
#include <bits/stdc++.h>
using namespace std;

// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
    public int Maximum69Number (int num) {
        char[] numArr = num.ToString().ToCharArray();
        for (int i = 0; i < numArr.size(); i++) {
            if (numArr[i] == '6') {
                numArr[i] = '9';
                break;
            }
        }
        return int.Parse(new string(numArr));
    }
}

Java solution

matched/original
class Solution {
    public int maximum69Number (int num) {
        StringBuilder numSB = new StringBuilder();
        numSB.append(num);
        for (int i = 0; i < numSB.length(); ++i) {
            if (numSB.charAt(i) == '6') {
                numSB.setCharAt(i, '9');
                break;
            }
        }
        return Integer.parseInt(numSB.toString());
    }
}

Python solution

matched/original
class Solution:
    def maximum69Number (self, num: int) -> int:
        num_str = list(str(num))
        for i in range(len(num_str)):
            if num_str[i] == '6':
                num_str[i] = '9'
                break
        return int(''.join(num_str))

Go solution

matched/original
func maximum69Number(num int) int {
    numStr := []byte(strconv.Itoa(num))
    for i := 0; i < len(numStr); i++ {
        if numStr[i] == '6' {
            numStr[i] = '9'
            break
        }
    }
    result, _ := strconv.Atoi(string(numStr))
    return result
}

Explanation

Algorithm

1⃣Преобразуйте входное целое число num в итерируемый и изменяемый объект num_obj.

2⃣Пройдитесь по num_obj и, если найдете цифру 6, замените её на 9 и прекратите итерацию.

3⃣Верните целое число, преобразованное из измененного num_obj.

😎