力扣-牛客-赛马网-js(v8)-ACM-输入输出

1,496 阅读1分钟

我正在参与掘金创作者训练营第5期,点击了解活动详情

牛客网 ACM 模式

  • ac.nowcoder.com/acm/contest…

  • 牛客网 主要进上面模拟一下就行了

  • 这里给出几个比较经典的输入输出

    • 这里主要是循环测试的多组测试用例

      • // 输入
        a c bb
        f dddd
        nowcoder
        // 输出
        a bb c
        dddd f
        nowcoderwhile (lines = readline()) {
            let line = lines.split(' ')
            console.log(line.sort((a, b) => a.charCodeAt() - b.charCodeAt()).join(' '))
        }
        
    • 这里会先获取输入测试用例的组数 然后确定循环次数

      • 有些题会提示 第一个为 n 以下几行输入值是什么作用
      • 2
        4 1 2 3 4
        5 1 2 3 4 510
        15
        ​
        let n = parseInt(readline())
        ​
        for (let i = 0; i < n; i++) {
            let line = readline().split(' ').splice(1)
            let sum = line.reduce((a, b) => +a + +b, 0)
            console.log(sum)
        }
        
    • 还有一种情况就是 每行第一个数字表示输入的值个数

      • 4 1 2 3 4
        5 1 2 3 4 5
        0
        ​
        10
        15
        ​
        let str = ''
        while(str = readline()){
            if(str == '0'){
                break;
            }
            let arr = str.split(' ').splice(1)
            let len = arr.length
            let sum = 0 
            for(let i=0;i<len;i++){
               sum += parseInt(arr[i]) 
            }
            console.log(sum)
        }
        

赛码网

力扣 ACM 模式

  • let lines = require('fs').readFileSync('/dev/stdin', 'utf8')
    ​
    // 输入
    1,2,3,4,5
    6,7,8,9// lines
    1,2,3,4,5\n6,7,8,9// 这里用 转换一下 split 
    let lines = require('fs').readFileSync('/dev/stdin', 'utf8').trim().split('\n')
    ​
    // lines
    ['1,2,3,4,5', '6,7,8,9']
    ​
    // 然后循环取出 或者 下标取出 再转换一下就行了
    
  • 力扣这个很迷 居然是读文件的形式读取的

  • 这里读出来得 line 全部是字符串

  • [1,2,3,4]
    
    • 这个数组就是一个一个得字符串 要自己去转换才行