首页 > 试题广场 >

游游的整数翻转

[编程题]游游的整数翻转
  • 热度指数:392 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
游游拿到了一个正整数x,她希望把这个整数的前k位进行翻转。你能帮帮她吗?

输入描述:
两个正整数xk,用空格隔开。
1\leq x \leq 10^9
k保证不超过x的位数。


输出描述:
翻转后的正整数。请注意不要带前导零。
示例1

输入

123 2

输出

213

说明

将前两位反转后,12变成了21。正整数变成了213。
示例2

输入

80407 4

输出

4087

说明

将前4位翻转,变成0408,连起来后去除前导零为4087。
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String string = in.next();
        int num = in.nextInt();
        String head = string.substring(0, num);
        String tail = string.substring(num);
        String rehead = new StringBuffer(head).reverse().toString();
        int i = 0;
        int index = -1;
        char[] strArr = rehead.toCharArray();
        for (i = 0; i < rehead.length(); i++) {
            if (strArr[i] == '0') {
                index = i;
            } else {
                break;
            }
        }
        rehead = rehead.substring(index + 1);

        String result = rehead + tail;
        System.out.println(result);
    }
}
编辑于 2023-07-26 18:46:04 回复(0)