【发布时间】:2017-09-02 16:06:28
【问题描述】:
我有一个问题可以描述为这种情况。
书籍分为三类:医学书籍、艺术书籍和历史书籍。 每本书分为三个级别:初级、中级、高级。
这些书将被放在书架上。
问题是比较两个不同书架的区别。
我已将这个问题抽象为两个字符串列表。
例如:
现在,书架可以定义为 ["A1","H2","M3"]。
问题:
-
有多少本书是一样的? (同类别同级别)
有多少本书的类别相同但级别错误?(不包括同一本书)
有多少本书的级别相同但类别错误?(不包括同一本书)
顺便说一句,相同的书籍不会放在同一个书架上,这意味着列表中的每个元素都是唯一的,并且与书籍的顺序无关。
例子
["A1","H2","M3"] ["A1","H3","A2"] -> (1 same book, 1 same category book, 2 same level books) -> (1,1,2)
["H3","M2","A2"] ["H2","M1","H1"] -> (0 same book, 2 same category books, 1 same level book) -> (0,2,1)
["A1","H1","M1"] ["A2","H2","M2"] -> (0 same book, 3 same catefory books, 0 same level book) -> (0,3,0)
当我用不同级别的相同类别的书或不同类别的相同级别的书时,有时我会得到3个以上...
【问题讨论】:
-
我不明白为什么例如第一个示例只有一个 same category 书?
-
你试过什么?你有一些代码吗?如果它不编译,错误是什么?如果是这样,它不起作用的输入/输出对是什么?这个问题没有显示解决问题的努力,这使得它脱离主题。
-
第一个例子,因为A1已经被算作同一本书(同类别同级别),所以只有H2和H3同类别不同级别。
-
@user2407038 当我尝试统计同一类别但级别错误的书籍和相同级别但类别错误的书籍时,有时同一类别或同一级别会计算不止一次。比如,["A1","H3","M3"] 和 ["A1","H3","M1"],正确答案是 (1,2,1),但我得到 (1,2, 2),级别'3'被计算两次......
标签: haskell compare difference