2013亞馬遜線上筆試題目

才智咖 人氣:3.12W

2小時,兩個題目。線上程式設計,英文題目。當時沒做好,完了自己把他們完成了。答案是我自己寫的,自己測試沒問題,若有錯誤請指正。

2013亞馬遜線上筆試題目

Question 1 / 2

Question:

We have an array representing customer’s shopping records.

For example, it’s an array like this:

custA, item1,

custB, item1,

custA, item2,

custB, item3,

custC, item1,

custC, item3,

custD, item2,

This array indicates that customer A bought item 1, customer B bought item 1, customer A bought item 2, customer B bought item 3, etc..

For a given item X and shopping records array, write code to find out what else (item Y) was bought mostly by the customers who bought item X.

For example, in above example, if X is item 1 then Y should be item 3.

Rules:

1. One customer can only buy one item once.

2. The mostly brought item should not be item X.

3. If no customer brought item X, then return “None”

4. If all the customers who brought item X only brought item X, then return “None”

5. The first line of input is the item X. The second line of input is the shopping record array, this shopping record array is split by space.

6. If there are many other mostly brought items which have equally brought times, then return any one of those items.

Examples:

Input1:

item1

custA item1 custB item1 custA item2 custB item3 custC item1 custC item3 custD item2

Output1:

item3

Input2:

item2

custA item1 custB item1 custC item1 custA item2 custB item3 custA item3

Output2:

item1

(The output2 can be item3 too)

/* Enter your code here. Read input from STDIN. Print output to STDOUT */

#include

#include

#include

#include

#include

#include

#include

using namespace std;

char* findMostlyBroughtItem(char* shippingRecordArray[], int length, char* givenItem);

inline bool isSpace(char x){

return x == ' ' || x == 'r' || x == 'n' || x == 'f' || x == 'b' || x == 't';

}

char * rightTrim(char *str){

int len = strlen(str);

while(--len>=0){

if(isSpace(str[len])){

str[len] = '