更新:
继续求助,还有两个测试案例没有通过:
"4D 5S 6S 8D 3C", "2S 4C 7S 9H 10H", "3S 4S 5D 6H JH"
"4D 5S 6S 8D 3C", "2S 4C 7S 9H 10H", "3S 4S 5D 6H JH", "3H 4H 5C 6C JD",
这2组中,为什么是"3 4 5 6 J"最大,顺子应该是5张牌,这个只有4个连续的。
======================================================================================
最近在exercise.io上刷rust题目,有一道poker hands的题目,谁能帮忙解释一下规则么?维基百科链接也打不开。。。谢谢
网址:
https://exercism.org/tracks/rust/exercises/pokerInstructions
Pick the best hand(s) from a list of poker hands.
See wikipedia for an overview of poker hands.
Ranking a list of poker hands can be considered a sorting problem.
Rust provides the sort method for Vec<T> where T: Ord.
Ord types form a total order: exactly one of a < b, a == b, or a > b must be true.
Poker hands do not conform to a total order: it is possible for two hands to be non-equal but have equal sort order. Example: "3S 4S 5D 6H JH", "3H 4H 5C 6C JD".
Rust provides the PartialOrd trait to handle the case of sortable things which do not have a total order. However, it doesn't provide a standard sort method for Vec<T> where T: PartialOrd. The standard idiom to sort a vector in this case is your_vec.sort_by(|a, b| a.partial_cmp(b).unwrap_or(Ordering::{Less|Equal|Greater}));, depending on your needs.
You might consider implementing a type representing a poker hand which implements PartialOrd.
--
修改:bnujwch FROM 124.64.17.*
FROM 223.104.41.*