牛客网-华为机试练习题 11 数字颠倒
题目描述
描述:
-
输入一个整数,将这个整数以字符串的形式逆序输出
-
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
输入描述:
输入一个int整数
输出描述:
将这个整数以字符串的形式逆序输出
示例1
输入
1516000
输出
0006151
思路:
逆序就两种思路:
- 一种是使用栈,对每个元素进行入栈,然后出栈。
- 一种是使用数组,从后往前进行遍历,从length-1遍历到0,闭区间
解决代码:
import java.util.Stack;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
Stack stack = new Stack();
for (int i=0;i<str.length();i++){
stack.push(str.charAt(i));
}
while(!stack.isEmpty()){
System.out.print(stack.pop());
}
}
}
import java.util.*;
public class Main{
public static void main(String[]args){
Scanner scan=new Scanner(System.in);
while(scan.hasNextLine()){
char[]chars=scan.nextLine().toCharArray();
for(int i=chars.length-1;i>=0;i--){
System.out.print(chars[i]);
}
System.out.println();
}
}
}
总结:
- 导入堆栈,java.util.Stack;
- 往栈中添加元素,stackpush()
- 遍历栈,判断是否为空,!stack.isEmpty(),
- 栈出元素,stack.pop()
- 字符串转数组,str.toCharArray()