Вычеркивание Java

 avatar
user_7290026
java
a year ago
1.5 kB
3
Indexable
Never
import java.util.*;

public class Main {
    public static int maxNumberAfterRemoving(int n, int d, int k, int num) {
        Stack<Character> stack = new Stack<>();
        String numStr = Integer.toString(num);

        for (char digit : numStr.toCharArray()) {
            while (k > 0 && !stack.isEmpty() && stack.peek() - '0' < digit - '0') {
                stack.pop();
                k--;
            }
            stack.push(digit);
        }

        // Если k еще не исчерпано, удаляем оставшиеся k цифр с конца стека
        while (k > 0 && !stack.isEmpty()) {
            stack.pop();
            k--;
        }

        StringBuilder resultBuilder = new StringBuilder();
        for (char digit : stack) {
            resultBuilder.append(digit);
        }

        return Integer.parseInt(resultBuilder.toString());
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите n, d, k через пробел: ");
        int n = scanner.nextInt();
        int d = scanner.nextInt();
        int k = scanner.nextInt();
        System.out.print("Введите число: ");
        int num = scanner.nextInt();

        int result = maxNumberAfterRemoving(n, d, k, num);
        System.out.println("Максимальное число после вычеркивания k-цифр: " + result);
    }
}