题解 | #数字颠倒#
数字颠倒
http://www.nowcoder.com/practice/ae809795fca34687a48b172186e3dafe
题意整理。
- 输入一个整数。
- 以字符串形式逆序输出。
方法一(逆序遍历)
1.解题思路
- 首先将输入的整数转化为字符串。
- 逆序遍历字符串的每一位,并输出。
图解展示:
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,转化为字符串之后,对应长度为常数级别,所以时间复杂度为。
- 空间复杂度:不需要额外的空间,所以空间复杂度为。
方法二(反转)
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,转化为字符串之后,对应长度为常数级别,所以时间复杂度为。
- 空间复杂度:需要额外常数级别的空间,所以空间复杂度为。
xqxls的题解 文章被收录于专栏
牛客题解