華爲機試在線訓練(前端)

明明的隨機數

題目描述javascript

明明想在學校中請一些同窗一塊兒作一項問卷調查,爲了實驗的客觀性,他先用計算機生成了N個1到1000之間的隨機整數(N≤1000),對於其中重複的數字,只保留一個,把其他相同的數去掉,不一樣的數對應着不一樣的學生的學號。而後再把這些數從小到大排序,按照排好的順序去找同窗作調查。請你協助明明完成「去重」與「排序」的工做(同一個測試用例裏可能會有多組數據,但願你們能正確處理)。java

Input Param
n               輸入隨機數的個數
inputArray      n個隨機整數組成的數組api

Return Value
OutputArray    輸出處理後的隨機整數數組

注:測試用例保證輸入參數的正確性,答題者無需驗證。測試用例不止一組。
樣例輸入解釋:
樣例有兩組測試
第一組是3個數字,分別是:2,2,1。
第二組是11個數字,分別是:10,20,40,32,67,40,20,89,300,400,15。函數

輸入描述:測試

輸入多行,先輸入隨機整數的個數,再輸入相應個數的整數

輸出描述:code

返回多行,處理後的結果

示例1
輸入排序

3
2
2
1
11
10
20
40
32
67
40
20
89
300
400
15

輸出索引

1
2
10
15
20
32
40
67
89
300
400

經過代碼

while(n=parseInt(readline())) {
    var arr = [];
    while(n--) {
        var value = parseInt(readline());
        arr[value] = 1;
    }
    arr.forEach(function(el, index) {
        if (el === 1) {
            console.log(index);
        }
    });
}

字符串分割

題目描述接口

  • 連續輸入字符串,請按長度爲8拆分每一個字符串後輸出到新的字符串數組;
  • 長度不是8整數倍的字符串請在後面補數字0,空字符串不處理。

輸入描述:

連續輸入字符串(輸入2次,每一個字符串長度小於100)

輸出描述:

輸出到長度爲8的新字符串數組

示例1
輸入

abc
123456789

輸出

abc00000
12345678
90000000

經過代碼

while(str=readline()) {
    while(str.length > 8) {
        console.log(str.substr(0, 8));
        str = str.substr(8);
    }
    if (str.length < 9) {
        console.log((str + '00000000').substr(0, 8));
    }
}

進制轉換

題目描述

寫出一個程序,接受一個十六進制的數,輸出該數值的十進制表示。(多組同時輸入)

輸入描述:

輸入一個十六進制的數值字符串。

輸出描述:

輸出該數值的十進制字符串。

示例1

輸入

0xA

輸出

10

經過代碼

while(str = readline()) {
    console.log(parseInt(str, 16));
}

若是十進制轉十六進制,使用str.toString(16)

質數因子

題目描述

功能:輸入一個正整數,按照從小到大的順序輸出它的全部質因子(如180的質因子爲2 2 3 3 5 )
最後一個數後面也要有空格

詳細描述:

函數接口說明:
public String getResult(long ulDataInput)
輸入參數:
long ulDataInput:輸入的正整數
返回值:
String

輸入描述:

輸入一個long型整數

輸出描述:

按照從小到大的順序輸出它的全部質數的因子,以空格隔開。最後一個數後面也要有空格。

示例1

輸入

180

輸出

2 2 3 3 5

經過代碼

var num = parseInt(readline());
var res = '';
for (var i=2; i<Math.sqrt(num); i++) {
    while (num%i == 0) {
        num = num / i;
        res +=  i + ' ';
    }
}

if (num > 1) {
    res += num + ' ';
}
console.log(res)

取近似值(四捨五入)

題目描述

寫出一個程序,接受一個正浮點數值,輸出該數值的近似整數值。若是小數點後數值大於等於5,向上取整;小於5,則向下取整。

輸入描述:

輸入一個正浮點數值

輸出描述:

輸出該數值的近似整數值

示例1

輸入

5.5

輸出

6

經過代碼

var num = readline();
console.log(Math.round(num));

合併表記錄

題目描述

數據表記錄包含表索引和數值(int範圍的整數),請對錶索引相同的記錄進行合併,即將相同索引的數值進行求和運算,輸出按照key值升序進行輸出。

輸入描述:

先輸入鍵值對的個數
而後輸入成對的index和value值,以空格隔開

輸出描述:

輸出合併後的鍵值對(多行)

示例1

輸入

4
0 1
0 2
1 2
3 4

輸出

0 3
1 2
3 4

經過代碼

while(n=readline()) {
    var obj = {};
    for (var i=0; i<n; i++) {
        var lineArr = readline().split(' ');
        if (obj[lineArr[0]]) {
            obj[lineArr[0]] += parseInt(lineArr[1]);
        } else {
            obj[lineArr[0]] = parseInt(lineArr[1]);
        }
    }
    
    for (index in obj) {
        console.log(index + ' ' + obj[index]);
    }
}

字符個數統計

題目描述

編寫一個函數,計算字符串中含有的不一樣字符的個數。字符在ACSII碼範圍內(0~127),換行表示結束符,不算在字符裏。不在範圍內的不做統計。

輸入描述:

輸入N個字符,字符在ACSII碼範圍內。

輸出描述:

輸出範圍在(0~127)字符的個數。

示例1

輸入

abcc

輸出

3

經過代碼

while (line = readline()) {
    var res = '';
    var arr = line.split('');
    for (var i=0; i<arr.length; i++) {
        if (res.indexOf(arr[i]) == -1) {
            res += arr[i];
        }
    }
    console.log(res.length);
}

字符串反轉

題目描述

寫出一個程序,接受一個字符串,而後輸出該字符串反轉後的字符串。(字符串長度不超過1000)

輸入描述:

輸入N個字符

輸出描述:

輸出該字符串反轉後的字符串

示例1

輸入

abcd

輸出

dcba

經過代碼

var str = readline();
var reversedArr = str.split('').reverse();
console.log(reversedArr.join(''));

句子逆序

題目描述

將一個英文語句以單詞爲單位逆序排放。例如「I am a boy」,逆序排放後爲「boy a am I」
全部單詞之間用一個空格隔開,語句中除了英文字母外,再也不包含其餘字符

輸入描述:

將一個英文語句以單詞爲單位逆序排放。

輸出描述:

獲得逆序的句子

示例1

輸入

I am a boy

輸出

boy a am I

經過代碼

var str = readline();
var reversedArr = str.split(' ').reverse();
console.log(reversedArr.join(' '));

字串的鏈接最長路徑查找(按照字典序排列字符串)

題目描述

給定n個字符串,請對n個字符串按照字典序排列。

輸入描述:

輸入第一行爲一個正整數n(1≤n≤1000),下面n行爲n個字符串(字符串長度≤100),字符串中只含有大小寫字母。

輸出描述:

數據輸出n行,輸出結果爲按照字典序排列的字符串。

示例1

輸入

9
cap
to
cat
card
two
too
up
boat
boot

輸出

boat
boot
cap
card
cat
to
too
two
up

經過代碼

while (n = readline()) {
    var arr = [];
    for(var i=0; i<n; i++) {
        arr.push(readline());
    }
    var sortArr = arr.sort();
    for(var j=0; j<sortArr.length; j++) {
        console.log(sortArr[j]);
    }
}

求解立方根

題目描述

•計算一個數字的立方根,不使用庫函數
詳細描述:
•接口說明
原型:
public static double getCubeRoot(double input)
輸入:double 待求解參數
返回值:double  輸入參數的立方根,保留一位小數

輸入描述:

待求解參數 double類型

輸出描述:

輸入參數的立方根 也是double類型

示例1

輸入

216

輸出

6.0

經過代碼

var num = parseInt(readline());
var res = Math.pow(num, 1/3);
console.log((Math.round(res*10)/10).toFixed(1));

【中級】單詞倒排

題目描述

對字符串中的全部單詞進行倒排。
說明:
一、每一個單詞是以26個大寫或小寫英文字母構成;
二、非構成單詞的字符均視爲單詞間隔符;
三、要求倒排後的單詞間隔符以一個空格表示;若是原字符串中相鄰單詞間有多個間隔符時,倒排轉換後也只容許出現一個空格間隔符;
四、每一個單詞最長20個字母;

輸入描述:

輸入一行以空格來分隔的句子

輸出描述:

輸出句子的逆序

示例1

輸入

I am a student

輸出

student a am I

經過代碼

var line = readline();
var words = line.match(/[A-Za-z]+/g);
var reservedArr = words.reverse();
console.log(reservedArr.join(' '));

統計大寫字母個數

題目描述

找出給定字符串中大寫字符(即'A'-'Z')的個數
接口說明
原型:int CalcCapital(String str);
返回值:int

輸入描述:

輸入一個String數據

輸出描述:

輸出string中大寫字母的個數

示例1

輸入

add123#$%#%#O

輸出

1

經過代碼

while (line = readline()) {
    var res = line.match(/[A-Z]/g);
    console.log(res.length);
}

AAAAAA

題目描述

AAAAAAA

輸入描述:

AAAAAA

輸出描述:

AAAAAA

示例1

輸入

AAAAAA

輸出

AAAAAA

經過代碼

AAAAAA
相關文章
相關標籤/搜索