题解 | #数字颠倒#

数字颠倒

http://www.nowcoder.com/practice/ae809795fca34687a48b172186e3dafe

题意整理。

  • 输入一个整数。
  • 以字符串形式逆序输出。

方法一(逆序遍历)

1.解题思路

  • 首先将输入的整数转化为字符串。
  • 逆序遍历字符串的每一位,并输出。

图解展示: alt

2.代码实现

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        //先转化为字符串
        String s=String.valueOf(n);
        //再逆序遍历,并输出
        for(int i=s.length()-1;i>=0;i--){
            System.out.print(s.charAt(i));
        }
    }
}

3.复杂度分析

  • 时间复杂度:假设输入整数为n,转化为字符串之后,对应长度为常数级别,所以时间复杂度为O(1)O(1)
  • 空间复杂度:不需要额外的空间,所以空间复杂度为O(1)O(1)

方法二(反转)

1.解题思路

  • 定义可变字符串res,将输入整数加入到res。
  • 反转res之后,再以字符串形式输出。

2.代码实现

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        StringBuilder res=new StringBuilder();
        //添加到StringBuilder
        res.append(n);
        //反转之后,再以字符串形式输出
        System.out.println(res.reverse().toString());
    }
}

3.复杂度分析

  • 时间复杂度:假设输入整数为n,转化为字符串之后,对应长度为常数级别,所以时间复杂度为O(1)O(1)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)
xqxls的题解 文章被收录于专栏

牛客题解

全部评论

相关推荐

10-24 13:36
门头沟学院 Java
Zzzzoooo:更新:今天下午有hr联系我去不去客户端,拒了
点赞 评论 收藏
分享
双非坐过牢:非佬,可以啊10.28笔试,11.06评估11.11,11.12两面,11.19oc➕offer
点赞 评论 收藏
分享
评论
5
2
分享
牛客网
牛客企业服务