LIOJ 標準輸入 & 輸出 懶人包
先參考 LidemyOJ (LIOJ) 首頁 ⇒ Home ⇒ 關於 OJ 的輸入與輸出
你會看到 Huli 老師的影片教學 & 模板 :
1 | var readline = require('readline'); |
如何開始
有看到最後一行註解嗎🤣
上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容
對,都不用管就對了
- 開一個資料夾 ( 這沒問題吧,用 CLI
mk dir
也可以 ) - 然後再資料夾裡面點
右鍵
⇒Git Bash Here
( 就是在這個路徑開 Git Bash ),如下圖 : - 再來使用
touch
創建兩個檔案code.js
( 寫 code 用的 ) &input.txt
( 放輸入的存文字檔 ) - 把模板貼到
code.js
( 我使用 VS code ) 裡,如下圖 :
注意 : lines 是一個 Array、裡面的元素是 String - 把題目的輸入貼到
input.txt
裡 ( 以 LIOJ 1001 為例 ),如下圖 :
先看看 lines 是甚麼東東吧
- 先在模板裡加一行
conole.log(lines)
,如上圖的第 4 點,// debug 用
那邊,如果還不熟悉,就每一題都先加conole.log(lines)
- 先再 git bash 輸入
bash
,之後才可以執行後面的命令,不要管為什麼 - 再來輸入
cat input.txt | node code.js
,使用 node 執行 code.js 檔 ( 這就是標準輸入的動作 ),如下圖 :
原來這 94 lines - 再來就是怎麼處理 lines 的問題啦
- 例如 : 可以用 let arr = lines[0].split(‘ ‘),注意要使用 lines
[0]
喔,不能直接用 lines ,因為要記得 lines 是一個 Array - 要使用就是 arr[0] ⇒ 1 ;arr[1] ⇒ 2 ,注意 : 此時的1, 2 ,其實是 String 型別喔
- 如果要使用 Number 型別,可以使用 Number(arr[0])
享受解題的樂趣吧
- 在本地解完 ( 跟題目的範例輸出一樣 ) 就可以丟到 LIOJ 上看看
- LIOJ 上也 AC ( accepted ) 後,就可以複製到 homework 了 (
然後 進入 ESlint 的地獄) - 如果錯誤,建議 複製一份回本地端修改好 再重複上面兩個步驟,比較不會亂掉,這裡改改、那裏改改,然後就從零開始了 ( 就是我 )
這邊就不贅述,自己試試看囉,有問題不好意思問發問,
也可以 PM 我 👇
同場加映 : 我常用的處理 lines 的方法
- 如果 input 是一行,但是很長 :
input.txt
1 | 1 1 2 3 5 8 13 |
code.js
1 | function solve(lines) { |
- 如果 input 是一列,但是很多行 :
input.txt
1 | 0 |
code.js
1 | function solve(lines) { |
- 如果 input 很多列也很多行 :
input.txt
1 | 1 2 3 |
code.js
1 | function solve(lines) { |