package com.interview.algorithms.general; import com.interview.basics.sort.QuickSorter; import com.interview.basics.sort.Sorter; /** * Created_By: stefanie * Date: 14-8-1 * Time: 下午10:44 */ public class C1_43_PokerStraight { public static boolean isStraight(String[] cards){ Integer[] numbers = new Integer[cards.length]; int i = 0; for(String card : cards){ if(card.equalsIgnoreCase("King")){ numbers[i++] = 0; } else if(card.equalsIgnoreCase("J")){ numbers[i++] = 11; } else if(card.equalsIgnoreCase("Q")){ numbers[i++] = 12; } else if(card.equalsIgnoreCase("K")){ numbers[i++] = 13; } else if(card.compareTo("1") >= 0 && card.compareTo("9") <= 0){ numbers[i++] = Integer.parseInt(card); } else { return false; } } Sorter<Integer> sorter = new QuickSorter<>(); sorter.sort(numbers); int kcount = 0; for(int k = 0; k < numbers.length - 1; k++){ if(numbers[k] == 0) kcount++; else { if(numbers[k+1] != numbers[k] + 1){ if(kcount > 0) kcount--; else return false; } } } return true; } }