amazon 笔试: 购物统计

Leetcode amazon 面试题系列(一) 最近在刷亚麻的面试题,然后顺便想练一练python的技巧,所以就用python刷了一边。然后mark一下以后可以复习。leetcode 771.大概就是给定两个字符串a 和b,问b 中出现了多少次a 的字符。记录一个python的用法:def numJewelsInStones(self, J, S): return sum(map(J.count, S))这里利用了 python 的几个... 阅读详情
/* 
 * File:   amazonOnline_test1.cpp
 * Question 1:
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)
 * 
 */


#include <iostream>
#include <string>
#include <map>
#include <set>
#include <algorithm>
#include <cstring>
#include <cstdio>


using namespace std;


char* findMostlyBroughtItem(char* shippingRecordArray[], int length, char* givenItem);
/*
 /a:蜂鸣,响铃 
/b:回退:向后退一格 
/f:换页 
/n:换行,光标到下行行首 
/r:回车,光标到本行行首 
/t:水平制表 
/v:垂直制表 
//:反斜杠 
/':单引号 
/":双引号 
/?:问号 
/ddd:三位八进制 
/xhh:二位十六进制 
/0:空字符(NULL),什么都不做 
 */
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] = '\0';
        }else{
            break;
        }
    }
    return str;
}


char * getInputLine(char *buffer, int length){
    if(fgets(buffer,length, stdin)==NULL){
        return NULL;
    }
    rightTrim(buffer);
    if(strlen(buffer)<=0){
        return NULL;
    }
    return buffer;
}




int splitAndConvert(char* strings,char* array[]){
    char* tokenPtr = strtok(strings," ");
    int i=0;
    while(tokenPtr!=NULL){
        array[i] = tokenPtr;
        i++;
        tokenPtr=strtok(NULL," ");
    }
    return i;
}


int main() {
    char givenItem[1000] = {0} ;
    while(getInputLine(givenItem, 1000)){
    char line[1000];
    getInputLine(line, 1000);
        
    char* shoppingRecordArray[1000] = {0};
        
        int length = splitAndConvert(line,shoppingRecordArray);
        if(length==0){
            break;
        }
        
        char * item = findMostlyBroughtItem(shoppingRecordArray, length, givenItem);
        if (NULL != item)
        {   // 原来系统提供的代码。这里没有NULL判断
            cout<<item<<endl;
            free(item);  // 自己加的
        }
    }
    return 0; 
}


char* findMostlyBroughtItem(char* shoppingRecordArray[], int length, char* givenItem){
    if(NULL==shoppingRecordArray || NULL==givenItem || length <=0)  
     return NULL;
    //save shopping records 
     multimap<string,string> mymap;
     
     multimap<string,string>::iterator mapit;
     multimap<string,string>::iterator mapit2;
     //save merchants and its number to be bought
     map<string, int> buymap;
     map<string, int>::iterator itbuymap;
   
     for(int i=0;i<length;i++){
         string customer(shoppingRecordArray[i++]);
         string item(shoppingRecordArray[i]);
         mymap.insert(make_pair(customer,item));
     } 
     string searchitem(givenItem);
     for(mapit=mymap.begin();mapit!=mymap.end();mapit++){
        //item found
         if(searchitem==mapit->second) {
            for(mapit2=mymap.begin();mapit2 != mymap.end();mapit2++) {   
                if(mapit->first==mapit2->first) {
                   itbuymap=buymap.find(mapit2->second);
                   if(itbuymap==buymap.end())
                     buymap.insert(make_pair(mapit2->second,1));
                   else
                     buymap[mapit2->second]++;  
                }
          }
        }
     }
   pair<string, int> founditem("",0);
   for(itbuymap=buymap.begin();itbuymap!=buymap.end();itbuymap++){
    if(itbuymap->first !=searchitem && itbuymap->second > founditem.second)   
        founditem=make_pair(itbuymap->first,itbuymap->second);
   }
   
   char *p=NULL;
   if(founditem.first != "") {   
       cout <<founditem.first<<endl;
       p=new char[founditem.first.length()+1];
       strcpy(p,founditem.first.c_str());
   }
 return p;   
}

【管理科学】第六十三篇 企业管理者招聘与人才博弈战略02 编号类型领域问题问题的数学分析(含逐步推理与数值范围)方法/手段/步骤/流程/话术/策略/行为/时序的所有内容和步骤(含数学表达式与数值分析)时序数学表达式及周期行动的数学表达式(含数值范围)关联知识和法律法规651组织博弈成本控制如何在保证质量的前提下有效控制成本?逐步推理: 1. 成本控制模型:成本每降低10%,利润可提升15%~25%。但过度降本可能影响质量和员工士气。 2. 控制效果:有效的成本控制可使利润率提升5%~10%。 3. 法律风险:需遵守劳动法和产品质量法。步骤与数学表 阅读详情

相关推荐

几道亚马逊面试题参考答案

以前给别人写的几道亚马逊面试题参考答案。题目在源代码文件内。

amazon笔试题

1.判断一年是否为闰年的方法 2.非递归实现exists方法 template class BinaryTree{ protected:     T* _data;     BinaryTree * _left;     BinaryTree * _right; }; template class BST:public BinaryTree{ public:

VergiL Wang的专栏 835

不止于ACC:用CarSim的‘Multiple Objects’和路径跟踪器玩转复杂交通流场景

本文深入探讨了如何利用CarSim的'Multiple Objects'模块和路径跟踪器模拟复杂交通流场景,超越传统ACC测试的局限。通过批量控制、动态交互和参数化设计,实现多车智能响应和复杂轨迹模拟,适用于连续变道、拥堵博弈、匝道汇流等真实交通场景。

weixin_30954265的博客 497

亚马逊笔试题目_亚马逊在线笔试题目

亚马逊在线笔试题目2小时,两个题目。在线编程,英文题目。当时没做好,完了自己把他们完成了。答案是我自己写的,自己测试没问题,若有错误请指正。Question 1 / 2Question:We have an array representing customer’s shopping records.For example, it’s an array like this:custA, item1...

weixin_39692037的博客 1436

Android投屏开发实战:手把手教你用Miracast实现Sink端功能(附完整代码)

本文是一份Android投屏Sink端开发的实战指南,详细讲解了如何利用Miracast协议和Wi-Fi P2P技术,从零构建一个功能完整的屏幕接收器。内容涵盖环境搭建、通过反射启用WFD Sink模式、RTSP协议协商、RTP流接收与解析,以及最终使用IjkPlayer进行音视频解码播放的全过程,并附有核心代码示例。

cherry的博客 878

Allan方差读图分析IMU误差指标

Allan方差标定IMU参数实测分析

weixin_44927558的博客 3566

亚马逊笔试题目_亚马逊笔试题目

亚马逊笔试题目总共两道编程题,全英文描述,时间为两个小时(可以用任何一种语言实现)第一题:对于一个给定的物品名称X以及顾客的购物清单数组,找出所有购买过X的客户中所买的其他的最多的商品种类。如已知购物数组为 [CustA,Item1, CustB,Item2, CustC,Item1, CustA,Item2, CustD,Item3, CustB,Item1] 给定物品名称为Item1时就应该返...

weixin_34551573的博客 2311

海康威视VS互联网大厂:薪资、福利、工作强度全方位对比

本文全面对比了海康威视与互联网大厂在薪资、福利和工作强度等方面的差异。海康威视提供稳定的薪资结构和较低的工作强度,适合追求专业深度的职场人;而互联网大厂则以高薪和快速成长吸引人才,但工作压力较大。文章还分析了职业发展路径和长期价值,帮助求职者做出明智选择。

weixin_29171129的博客 389

亚马逊笔试题目_亚马逊笔试题第二弹

笔经面经分享之亚马逊笔试题第二弹。希望通过本帖,能够对正在找工作的同学或者将要找工作的同学提供微薄之力。--小站小编1笔试题下面是来自于亚马逊的编程笔试题,感兴趣的同学可以先自己想想解题思路:Pleaseimplementasimplelogicrule,theinputisasetoflogicformula,theformatislikea1,a2,a3,…...

weixin_39881802的博客 1910

基于ResNet + LLM大语言模型的分类识别系统设计与实现,Web前后端分离,Django+vue3+AI助手模块+ResNet50算法+LLM 联动+Element Plus等技术,全网独发

分类识别任务是计算机视觉中的重要任务,广泛应用于智慧校园分类、智慧农业、智慧生活场景分类等领域。常见的分类模型有 VGGNet、ResNet 、MobileNet 、ConvNeXt、DenseNet、ViT、Swin Transformer、YOLOv8/11/26。本项目结合 ResNet分类识别算法 + LLM大语言模型联动 ,使用 Django + Vue3,构建了一个通用的 Web 前后端系统,用户端 + 管理端 ,便于用户操作检,不仅可以用于大论文的工作量展示,还可以作为毕业设计。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 759

机床上位机实战:CNC设备数据采集+工艺参数存储全流程(附C#代码+SQL设计)

如果能正常输出转速和状态,说明通信通了——这步是基础,没通的话别往下走,先查CNC的IP对不对、Modbus功能有没有开、地址是不是错了(我当初卡了2小时,发现是Fanuc的Modbus从站地址设成了2,不是默认1)。这篇文章就把整个开发过程拆透:从CNC通信协议选型,到数据采集代码落地,再到工艺参数的数据库设计,连中间踩过的“Fanuc系统寄存器地址对应错”“断连后数据补传”这些坑都给大家说清楚,新手跟着做也能跑通。工艺参数要跟“工单”和“设备”绑定,不然查的时候不知道是哪个工单、哪台设备的参数。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 792

知识图谱笔试题

知识图谱笔试题目1.Q:列举出知识图谱中可以定义的3种实体,3种关系(本题考察对知识图谱基本定义的理解)A:实体[人类,城市,商品],关系[小明居住在上海,小明买了一箱可口可乐,小明经常喝碳酸饮料]2.Q:有user_info表字段如下[user_id:用户id,Repositories:仓库数量,Stars:Stars数量,Followers:关注他的人们,following:他关注的人们],请...

NONONO 8374

SAR图像降噪:基于小波变换和双边滤波器的Matlab实现

小波变换和双边滤波器是常用的图像降噪技术,它们可以在保持图像细节的同时有效抑制噪声。本文介绍了基于小波变换和双边滤波器的SAR图像降噪方法,并提供了相应的Matlab源代码。通过对比原始图像和降噪后的图像,可以观察到噪声得到一定程度的抑制,同时保留了图像的细节信息。本文将介绍一种基于小波变换和双边滤波器的方法,用于SAR图像的降噪,并提供相应的Matlab源代码。希望这篇文章能够帮助您理解基于小波变换和双边滤波器的SAR图像降噪方法,并为您提供实现该方法的Matlab源代码。对图像的高频部分进行降噪处理。

ScriptCharm的博客 840

Amazon(亚马逊)2014届秋季校园招聘在线笔试题一

思路:题目要求在顾客花掉手中所有n元钱的情况下能够买到最少的商品数,这句话包含2层意思,一是顾客必须正好花掉手中的n元钱,二是在正好花掉手中n元钱的情况下,顾客可能有多种消费方案,要求从这些方案中找出最少商品的方案。解决此题的一种思路如下(以题目中所给示例1为例): 1、 先对商品价格a[a_size]={1、3、4、5}按照降序排列,排序后即为price[a_size]={5、4、3、1};

Sky的专栏 1898

【OpenClaw从入门到精通】第24篇:OpenClaw Skill商业化实战指南——从0开发付费技能,在ClawHub变现(2026实测版)

本文聚焦OpenClaw Skill商业化的全流程落地,基于2026年生态现状、公开行业报告及开发者指南,拆解付费Skill的市场机会、商业模式、技术实现、发布运营及避坑要点。核心围绕“Freemium API Backend”主流路径,通过虚拟但贴合真实场景的“金融研报复现”案例,提供从需求分析、定价设计到代码开发、ClawHub上架的完整实操方案。文中包含可直接复用的代码片段、执行结果演示及流程图解,既满足新手快速入门的需求,也为进阶开发者提供商业化落地的关键思路,帮助读者抓住AI Agent早期红利。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1084

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

2012 亚马逊在线笔试题目2

amazon online test 亚马逊 在线 考试 题目

大树叶 技术专栏 863

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

亚马逊在线技术笔试题

(1) * 题目:给定一个数组和一个数字,请在这个数组的元素之间添加+-符号,使这个数组元素运算之后的结果是这个数字, *     比如{2,3,4}1 则2+3-4=1输出这样的等式 *     分析:这是亚马逊2013年在线笔试的一道题目,题目不难,应该使用递归来做 *         若数组只有一个元素,则这个元素和最后数字相等,则输出(元素=数字), *         若和最后元素不...

daihaibo1989的博客 6654

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

亚马逊面试被拒

从伦敦面试回来后的第8天,收到了亚马逊HR打来的电话。接电话的时候,我都听得到自己心跳的声音,然后听到那句‘Unfortunately’顿时觉得万念俱灰。后面HR叽里呱啦的说了一堆话,就再也没听进去了。。。虽然这次面试准备了将近两个月,最后还是以失败告终,但是木已成舟,还是好好总结一下吧,希望对以后的面试乃至工作都有帮助。 我这次在伦敦onsite面试的是Amazon Video部门。面试一共分

huangyu20072010的专栏 1万+

名企笔试:Amazon笔试题(Count the elements)

题意: Given two unsorted arrays A, B. They can contain duplicates. For each element in A , count elements less than or equal to it in array B . 给你两个数组A和B,他们可能包含重复的元素,对于每一个在A中元素a,计算在数组B中有多少个数小于或者等于a。 输

机器笨猫 5962

2014亚马逊在线笔试题目

参考http://www.cnblogs.com/jiabei521/p/3348780.html出的题目 1、 题目的意思是   1xN的棋盘上,每个格子有一定的分值,现在有m个卡片,每个卡片上有1~4四种数值,代表走几步,类似小时候的飞行棋游戏,现在有个人站在位置0的初始点,抽取一张卡片,然后根据卡片上的数值向前移动,然后获取移动后人所在的位置的分值,然后累加,求最后所能得到的最大分...

weixin_30341735的博客 203

亚马逊笔试题目_一道亚马逊的在线笔试题

来园子快一年了,从来都是只看看,不说话。一来觉得自己技术太弱,说出来误导别人;二来自己文笔太差,写出来不通就贻笑大方了。之前看到园子有人发了一道面试题,觉得蛮有意思的,鼓起勇气写一篇,让大神们扶正一下,也好促进自己进步!题目描述:规则一:四张牌相同。自然数字大的胜出,比如3,3,3,3 < 6,6,6,6规则二:四张牌连续。当然序列最大的那个胜出。但是有个小trick,A在这里默认表最大牌,...

weixin_39610631的博客 969

C++中的多态性(vptr和vtable)

多态性 (polymorphism) 是面向对象编程的基本特征之一。而在C++ 中,多态性通过虚函数 (virtual function) 来实现。我们来看一段简单的代码: #include using namespace std;class Base{  int a;public:  virtual void fun1() {cout  virtual void fun2() {cout 

大树叶 技术专栏 2524
上一篇: Amazon 笔试 :公共祖先 问题
下一篇: amazon 股票的最佳买入和卖出点
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值