Go: package main

import (
	"bufio"
	"os"
	"strings"
	"strconv"
	"sort"
	"fmt"
)

var scanner = bufio.NewScanner(os.Stdin)

func main() {
	for scanner.Scan() {
		input := strings.Split(scanner.Text(), ",")
		cards := make([]int, 5)
		for i :=range input {
			cards[i], _ = strconv.Atoi(input[i])
		}
		sort.Sort(sort.IntSlice(cards))
		if cards[0] == cards[1] && cards[2] == cards[3] && cards[2] == cards[1] {
			fmt.Println("four card")
		} else if cards[1] == cards[2] && cards[3] == cards[4] && cards[3] == cards[2]{
			fmt.Println("four card")
		} else if cards[0] == cards[1] && cards[1] == cards[2] && cards[3] == cards[4] {
			fmt.Println("full house")
		} else if cards[0] == cards[1] && cards[2] == cards[3] && cards[3] == cards[4] {
			fmt.Println("full house")
		} else if cards[0] == 1 && cards[1] == 10 && cards[2] == 11 && cards[3] == 12 && cards[4] == 13 {
			fmt.Println("straight")
		} else if cards[0]+1 == cards[1] && cards[1]+1 == cards[2] && cards[2]+1 == cards[3] && cards[3]+1 == cards[4] {
			fmt.Println("straight")
		} else if (cards[0] == cards[1] && cards[1] == cards[2]) || (cards[1] == cards[2] && cards[2] == cards[3]) || (cards[2] == cards[3] && cards[3] == cards[4]) {
			fmt.Println("three card")
		} else if ((cards[0] == cards[1]) && ((cards[2] == cards[3]) || (cards[3] == cards[4]))) || ((cards[1] == cards[2]) && (cards[3] == cards[4])) {
			fmt.Println("two pair")
		} else if cards[0] == cards[1] || cards[1] == cards[2] || cards[2] == cards[3] || cards[3] == cards[4] {
			fmt.Println("one pair")
		} else {
			fmt.Println("null")
		}
	}
}

Python: from itertools import permutations
import sys
import os

def inini(_card):
    for i in range(len(_card)):
        _card[i] = 0


def main():
    for s in sys.stdin:
            card = 14*[0]
            inini(card)
            number = list(map(int,s.split(',')))
            for v in number:
                card[v] += 1
            one_pair = 0
            tree_card = 0
            four_card = 0
            flag = 0
            for value in sorted(set(number),key=number.index):
                if card[value] == 2:
                    one_pair += 1
                elif card[value] == 3:
                    tree_card += 1
                elif card[value] == 4:
                    four_card += 1
            if one_pair == 1 and tree_card ==1:
                print('full house')
                flag = 777        
            elif one_pair == 1:
                print('one pair')
                flag = 777
            elif one_pair == 2:
                print('two pair')
                flag = 777
            elif tree_card == 1:
                print('tree card')
                flag = 777
            elif four_card == 1:
                print('four card')
                flag = 777
            straight = [[1,2,3,4,5],[2,3,4,5,6],[3,4,5,6,7],[4,5,6,7,8],[5,6,7,8,9],[6,7,8,9,10],[7,8,9,10,11],[8,9,10,11,12],[9,10,11,12,13],[10,11,12,13,1]]
            for s_list in straight:
                number.sort()
                if number[0] == 1 and number[4] == 13:
                    number.append(1)
                    number.pop(0)
                if number == s_list:
                    print('straight')
                    flag = 777
                    break
            if flag == 0:
                print('null')

       
if __name__ == '__main__':
    main()

Python: import sys
from collections import Counter


class Poker(object):
    def __init__(self, cards):
        # ?????????????????????????????????????????§?????????(??????)???????????????
        self.cards = cards[:]
        self.cards.sort(reverse=True)

    def evaluate_hand(self):
        """ ???????????????????????????????????????????????????
        ????????????????????\??????????????????????????????????????§?????????????????\???????????¬????????????????????\???????????????????????¬????????????????????\?????±????????????
        - null
        - one pair
        - two pair
        - three card
        - straight
        - full house
        - four card
        """
        if (self.cards[0] == self.cards[1]+1 == self.cards[2]+2 == self.cards[3]+3 == self.cards[4]+4) or \
            (self.cards[0] == 13 and self.cards[1] == 12 and self.cards[2] == 11 and self.cards[3] == 10 and self.cards[4] ==1):
            return 'straight'
        else:
            c = Counter(self.cards)
            hand = c.most_common()  # ????????°?????????????????°????????????????????????(???: ????????????)?????????????????????????????????
            if hand[0][1] == 4:
                return 'four card'
            elif hand[0][1] == 3 and hand[1][1] == 2:
                return 'full house'
            elif hand[0][1] == 3:
                return 'three card'
            elif hand[0][1] == 2 and hand[1][1] == 2:
                return 'two pair'
            elif hand[0][1] == 2:
                return 'one pair'
            else:
                return 'null'


if __name__ == '__main__':
    # ??????????????\???
    for line in sys.stdin:
        cards = [int(x) for x in line.strip().split(',')]

        # ??????????????????
        p1 = Poker(cards)
        result = p1.evaluate_hand()

        # ???????????¨???
        print(result)

Python: while 1:
	try: p=sorted(list(map(int,input().split(','))))
	except: break
	if (p[0] == p[3]) or (p[1] == p[4]): 
		print('four card')
	elif p[0] == p[2] or p[1] == p[3] or p[2] == p[4]:
		print('three card')
	elif (p[0] == p[1] == p[2] and p[3] == p[4]) or (p[0] == [1] and p[2] == p[3] == p[4]):
		print('full house')
	elif (p[0] == p[1] and p[2] == p[3]) or (p[1] == p[2] and p[3] == p[4]):
		print('two pair')
	elif p[0] == p[1] or p[1] == p[2] or p[3] == p[4]:
		print('one pair')
	elif p[0] == p[1]-1 and p[1] == p[2]-1 and p[2] == p[3]-1 and p[3] == p[4]-1 and p[4] == p[3]+1:
		print('straight')
	elif p[0] == 1 and p[1] == 10 and p[2] == 11 and p[3] == 12 and p[4] == 13:
		print('straight')
	else:
		print('null')

C++: #include <stdio.h>
#include <algorithm>
using namespace std;

int main(){
	int a[5],i,pair;
	while(scanf("%d,%d,%d,%d,%d",&a[0],&a[1],&a[2],&a[3],&a[4]) != EOF){
		pair = 0;
		sort(a,a + 5);
		if(a[1] == a[2] && a[2] == a[3] && (a[0] == a[1] || a[3] == a[4])) printf("four card\n");
		else if((a[0] == a[1] && a[2] == a[3] && a[3] == a[4]) || (a[0] == a[1] && a[1] == a[2] && a[3] == a[4])) printf("full house\n");
		else if((a[0] == a[1] && a[1] == a[2]) || (a[1] == a[2] && a[2] == a[3]) || (a[2] == a[3] && a[3] == a[4])) printf("three card\n");
		else if((a[0] + 1 == a[1] && a[1] + 1 == a[2] && a[2] + 1 == a[3] && a[3] + 1 == a[4]) || (a[0] == 1 && a[1] == 10 && a[2] == 11 && a[3] == 12 && a[4] == 13)) printf("straight\n");
		else {
			for(i = 0;i < 3;i++){
				if(a[i] == a[i + 1]) pair++;
			}
			if(pair == 2) printf("two pair\n");
			else if(pair == 1) printf("one pair\n");
			else printf("null\n");
		}
		printf("\n");
	}
	return 0;
}