1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/gitee-community-gitee-7th-event-3

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
九行模式匹配规则秒杀ProjectEuler 54题-ShowHand.md 1.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 16:59 2ee92af

Импорт данных:

data = Characters[
  Partition[#, 5] & /@ Import["p054_poker.txt", "Table"]
] /. Thread[Characters@"23456789TJQKA" -> Range@13];

Даём определение правилам:

consecutiveQ = Differences@Sort@#[[;;, 1]] === {1,1,1,1} &;
pickMaxValue = Max@#[[;;, 1]] &;

rules = {
  straightFlush:{OrderlessPatternSequence[{_,sameSuit_} ..]} ? consecutiveQ :> {9, pickMaxValue@straightFlush},
  fourOfAKind:{OrderlessPatternSequence[{sameValue_,_} ..,_]} :> {8, sameValue},
  fullHouse:{OrderlessPatternSequence[{sameValueA_|sameValueB_,_} ..]} :> {7, pickMaxValue@fullHouse},
  flush:{OrderlessPatternSequence[{_,sameSuit_} ..]} :> {6, pickMaxValue@flush},
  straight_?consecutiveQ :> {5, pickMaxValue@straight},
  threeOfAKind:{OrderlessPatternSequence[{sameValue_,_} ..,_,_]} :> {4, sameValue},
  twoPairs:{OrderlessPatternSequence[{sameValueA_|sameValueB_,_} ..,_]} :> {3, Max[sameValueA, sameValueB]},
  onePair:{OrderlessPatternSequence[{sameValue_,_} ..,_,_,_]} :> {2, sameValue},
  highCard_ :> {1, pickMaxValue@highCard}
};

Считаем и засекаем время:

AbsoluteTiming@Count[Replace[data, rules, {2}], _?(Not@*OrderedQ)]

{0.133739, 376}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/gitee-community-gitee-7th-event-3.git
git@api.gitlife.ru:oschina-mirror/gitee-community-gitee-7th-event-3.git
oschina-mirror
gitee-community-gitee-7th-event-3
gitee-community-gitee-7th-event-3
master