天天看點

L1-005 考試座位号

題目:

L1-005 考試座位号

思路:用一個二維數組存儲輸入的學号和座位号。

知識點for me:

1、不要在程式中混合使用nextInt(),next(),nextLine()。如果要使用nextLine()的話就全部使用

nextLine()

整行讀入後,再進行處理。最開始我先用了nextInt()又用了nextLine(),發現nextLine()比我希望的少讀了一行,可能是把第一行的換行符當作第一行了?

2、以空格分隔字元串的方法:

String [] arr2 = str.split(" ");

     但是如果待分隔的字元串像這樣“a  b c   d“包含制表符、單個空格、多個空格時,可以這麼做:

String [] arr = str.split("\\s+");

  String的split方法支援正規表達式,而正規表達式

\s

表示比對任何空白字元,

+

表示比對一次或多次。

上代碼:

import java.io.*;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int sum=Integer.parseInt(sc.nextLine());
        String [][]arr=new String[sum][3];    
        String s;
        int i,j;
        for(i=0;i<sum;i++)
        {
            s=sc.nextLine();
            arr[i]=s.split(" ");
        }
        String get=sc.nextLine();
        int g=Integer.parseInt(get.trim());
        String a=sc.nextLine();
        String arr2[]=new String[g];
        arr2=a.split(" ");
        for(i=0;i<g;i++)
        {
            for(j=0;j<sum;j++)
            {
                if(arr[j][1].equals(String.valueOf(arr2[i])))
                {
                    System.out.println(arr[j][0]+" "+arr[j][2]);
                    break;
                }
            }
        }
    }
}      

但是,測試結果竟然是部分正确。

L1-005 考試座位号

看樣子代碼還得優化,看了看人家做的很多都是用的C語言的結構體,Java沒有結構體,或許可以用類來實作吧?這題不太想做了,以後有空再來管它吧。

————————————————————————————————————————————————————————————————————————————————————————

我帶着倆小時學的C++皮毛回來管它了!C++用結構體解決挺簡單的,寫起來快,也能全部通過。

上代碼:

#include <iostream>
using namespace std;
struct stu{
    string s;
    int a,b;
};
int main() {
    stu arr[1010];
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>arr[i].s>>arr[i].a>>arr[i].b;
    }
    int m,x;
    cin>>m;
    for(int i=0;i<m;i++)
    {
        cin>>x;
        for(int j=0;j<n;j++)
        {
            if(arr[j].a==x)
            {
                cout<<arr[j].s<<" "<<arr[j].b<<endl;
                break;
            }
        }
    }
    return 0;
}      

轉載于:https://www.cnblogs.com/littleLittleTiger/p/10354700.html