该题的题目是在一个超市里,有一个包含 n个格子的货物架,每个格子中放有一种商品,商品用小写字母 a 到 z 表示。当顾客进入超市时,他们会依次从第一个格子查找到第 n 个格子,寻找自己想要购买的商品。如果在某个格子中找到该商品,顾客就会购买它并离开;如果中途遇到一个空格子,或查找完所有格子还没有找到想要的商品,顾客也会离开。
作为超市管理员,你可以在顾客到来之前重新调整商品的顺序,以便尽可能多地出售商品。当第一个顾客进入后,商品位置不能再调整。你需要计算在最优调整下,最多可以卖出多少件商品。其中输入变量说明:
n:货物架的格子数m:顾客想要购买的商品种类数s:货物架上商品的初始顺序c:顾客想要购买的商品种类 题目分析:该题目的基本思路是先将商品和顾客的需写入,可以将其写入两个数组,再将需求进行一个一个拿出来,将每一个需求都与商品进行比较,可以在比较之前设置一个变量,设置为零,在每一次找到之后,那个变量加一,最后返回该结果,该结果就是一次可以最多卖出多少件商品。 总体设计:决定运用java,因为本题目更加希望输入商品和顾客的需求,最后的结果出来是最多可以卖出多少商品,所以该程序代码需要反复调用,并且封闭性要好,综合考虑最终选择java。其中写一个面向对象的类,该类的输入有n:货物架的格z子数,m:顾客想要购买的商品种类数,s:货物架上商品的初始顺序,c:顾客想要购买的商品种类。该类还需要注意返回值,为整数型。总程序主要内容是调用该类,将每一次格子数、商品种类数、商品的初始顺序、购买商品种类写进去。例如输入:n = 3 ,m = 4 ,s = "abc" ,c = "abcd",输出:3。输入:n = 4 ,m = 2 ,s = "abbc" ,c = "bb",输出:2。 详细设计:可以利用循环将商品种分类和顾客想买的商品种类写入,利用循环将商品种类和顾客买的商品种类对比,设置变量记录商品出售情况,最后将这个变量返回。主函数收到返回值,再将其输出。该代码就可以完成了。