牛客网-华为机试练习题 11 数字颠倒

牛客网-华为机试练习题 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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值