Is this a straight flush? Related: Name the poker hand


  A straight flush is a poker hand containing five cards of sequential rank, all of the same suit. As part of a straight flush, an ace can rank either above a king or below a two. An ace can rank either high (e.g. A♥ K♥ Q♥ J♥ 10♥ is an ace-high straight flush) or low (e.g. 5♦ 4♦ 3♦ 2♦ A♦ is a five-high straight flush), but cannot rank both high and low in the same hand (e.g. Q♣ K♣ A♣ 2♣ 3♣ is an ace-high flush, not a straight flush).


Challenge

Given N cards (in any reasonable format) output a truthy value if a straight flush is contained in the poker hand.

Input


N numbers of cards. (In any reasonable format)


There are four suits; hearts, spades, diamonds, and clubs (H, S, D, C). 

Each suit has one card for the numbers 2 to 10, plus 4 'picture' cards, Ace, Jack, Queen, and King (A, J, Q, K)

Note: You can take 10 as T

Output


Truthy/Falsy value


Test case

["AS", "2S", "3S", "4S", "5S"] =&gt; true

["3D", "9C", "4S", "KH", "AD", "AC"] =&gt; false

["5D", "6D", "7D", "8H", "9D", "10D", "JD"] =&gt; false

["JC", "7C", "5D", "8C", "AC", "10C", "9C", "5S"] =&gt;true

[] =&gt; false

["AS", "2S", "3S"] =&gt; false

["JC", "QC", "KC", "AC", "2C"] =&gt; false

[ "2H", "3H", "4H", "5H", "6H", "7H"] =&gt; true




Standard code-golf rules apply.

Winning criteria: Shortest code in each lang
Python 2, 95 bytes



lambda a:any(set('A234567891JQKA'[i/4:][:5])&lt;={r['HCSD'[i%4]in r]for r in a}for i in range(40))


Try it online!

There are 40 possible straight flushes, and this simply checks them all. Chas Brown saved 2 bytes; Jo King saved 4 more.