输入数据

实现栈

输入:
6
push 1
pop
top
push 2
push 3
pop
输出:
1
error
3

C++

#include <iostream>
using namespace std;

int arr[100010];
int cnt = 0;
void push(int val) {
    arr[cnt ++] = val;
}
string top(){
    if(cnt <= 0)
        return "error";
    return to_string(arr[cnt - 1]);
}
string pop() {
    if(cnt <= 0)
        return "error";
    cnt --;
    return to_string(arr[cnt]);
}
int main() {
    int n;
    cin >> n;
    while(n --) {
        string op;
        int val;
        cin >> op;
        if(op == "push") {
            cin >> val;
            push(val);
        }
        if(op == "top") {
            cout << top() << endl;
        }
        if(op == "pop") {
            cout << pop() << endl;
        }

    }
}

JAVA(Scnner):

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static int[] arr = new int[100010];
    public static int cnt = 0;
    public static void push(int val) {
        arr[cnt ++] = val;
    }
    public static String pop() {
        if(cnt <= 0)
            return "error";
        cnt --;
        return String.valueOf(arr[cnt]);
    }
    public static String top() {
        if(cnt <= 0) {
            return "error";
        }
        return String.valueOf(arr[cnt - 1]);
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        // BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int n = in.nextInt();
        while(n --> 0){
            String op = in.next();
            if("push".equals(op)) {
                int val = in.nextInt();
                push(val);
            }
            if("pop".equals(op)) {
                System.out.println(pop());
            }
            if("top".equals(op)) {
                System.out.println(top());
            }
        }
        in.close();
    }
}

Java(br):

br.read() 只能读一个字符,例如输入6,则int为54,也就是ASCII码

直接用readLine()

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static int[] arr = new int[100010];
    public static int cnt = 0;
    public static void push(int val) {
        arr[cnt ++] = val;
    }
    public static String pop() {
        if(cnt <= 0)
            return "error";
        cnt --;
        return String.valueOf(arr[cnt]);
    }
    public static String top() {
        if(cnt <= 0) {
            return "error";
        }
        return String.valueOf(arr[cnt - 1]);
    }
    public static void main(String[] args) throws IOException {
        // Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        // BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.valueOf(br.readLine());
        //int n = in.nextInt();
        while(n --> 0){
            String[] t = br.readLine().split(" ");
            String op = t[0];
            if("push".equals(op)) {
                int val = Integer.valueOf(t[1]);
                push(val);
            }
            if("pop".equals(op)) {
                System.out.println(pop());
            }
            if("top".equals(op)) {
                System.out.println(top());
            }
        }
        br.close();
        // in.close();
    }
}
Copyright © 版权信息 all right reserved,powered by aspire-zero and Gitbook该文件修订时间: 2025-03-02 18:06:50

results matching ""

    No results matching ""