Problem Statement
______ / A /| /_____/ | | |C| | B | / |_____|/For the above roll, we should record "ABC"
We want to check the data for consistency -- we know that the data recording
process is error-prone.
Create a class AlphaDice that
contains a method badData that is given a
If all the roll data are consistent with some distinct labeling of the die, return -1.
Definition
- Class:
- AlphaDice
- Method:
- badData
- Parameters:
- String[]
- Returns:
- int
- Method signature:
- int badData(String[] roll)
- (be sure your method is public)
Constraints
- roll will contain between 1 and 50 elements inclusive
- each element of roll will have length 3 and will contain only 'A'-'Z'
Examples
{"ABC","ZCB"}
Returns: -1
This is the example above where there is a Z on the bottom. On the second roll the die was oriented so the Z was on the top, the C at the front, and the B on our right. These data are consistent with a distinctly labeled die.
{"ABC","DEF","BCA","GHI","ABC"}
Returns: 3
The first 3 were consistent with a die with 6 distinct labels, but the "GHI" must be bad data since we could not possibly observe more than 6 different labels.
{"ABA","CDE","CDE","CDE","CDE"}
Returns: 0
The first observation shows two sides labeled with 'A'
{"TFR","TLF","TBL","TRB","URF","ULF","ULB","UBR","RTF","RBT","RUB","RFU","TBL"}
Returns: 5
{"TFR","TLF","TBL","TRB","URF","UFL","ULB","UBR","RTF","RBT","RUB","RFU","TBL"}
Returns: -1
{"ACD","AEB","FDC","FCB","CDA","DAC","DCA"}
Returns: 6
{"CDA","ADE","DEA","DEA","DEA","DAC","FCD"}
Returns: 6
{"CDA","ADE","DEA","DEA","DEA","DAC","FCB"}
Returns: -1
{"ABC","DEF","BCF"}
Returns: 2
{"ABC","ABC","ABC","ABC","CBA","ABC"}
Returns: 4
{"BCA","ABC","ABC","BCF","ABC","CBA","ABC"}
Returns: 3
{"BCA","ABC","ABC","BFC","ABC","CBA","ABC"}
Returns: 5
{"BCA","ABC","CAB","FDB","CBF","BFC","CAB","ACD","GHF"}
Returns: 4
{"BFC","BCA","ABC","CAB","FBD","CBF","BFC","CAB","ADB","BCA","ABC","CAB","FBD","CBF","BFC","CAB","ADB","BCA","ABC","CAB","FBD","CBF","BFC","CAB","ADB","BCA","ABC","CAB","FBD","CBF","BFC","CAB","ADB","BCA","ABC","CAB","FBD","CBF","BFC","CAB","ADB"}
Returns: -1
{"BFC","BCA","ABC","CAB","FBD","CBF","BFC","CAB","ADB","BCA","FCB", "FCB","BDF","DFB","DBA","BAD","ZCD"}
Returns: 16
{"ABC","XYZ","ZYC","YAC","CBZ","ZXB","ABC"}
Returns: 5
{"ABC","DEF","GHI","JKL","MNO","PQR","STU","VWX","YZA"}
Returns: 2
{"ABC","ABC","ABC","CCC","ABC"}
Returns: 3
{"ZYX","YXZ","XZZ","ABC"}
Returns: 2
{"ABC","ABA","BCA","DEF","GHI"}
Returns: 1
{"ALB","BAL","CBL","LCB","LBA","LBA","CAX","AXC"}
Returns: 6
{"YTC","VCU","UCU"}
Returns: 2
{"ISH","SIF","WFS","HSW","ISF","SHW","SFI","IFS","WSH","FSI","FSI","SFW","SFW","ISH","HSI","HIS","WSF","SWH","SWH","IHS","FSW","WSH","WSH","HSW","SFI","SHI","FSW","IFS","WSH","FWS","FSW","WSH","SFW","SFI","IHS","FSW","SWH","WFS","SIH","HSI","ISF","SWF"}
Returns: 2
{"KXZ","XKX","KXZ","XZK"}
Returns: 1
{"EJR","RSQ","GSJ","QSG","GJE","SGQ","GEQ","JSR","JEG","GEQ","JGS","GJE","RSQ","GJE","EQG","REJ","QRS","GJE","ERQ","EQG","RSQ"}
Returns: -1
{"CVQ","QVP","QCV","QPW","VQC","QVP","AVC","WAC","ACW","APV","CVQ","AWP","WCQ","PWQ","VCA","QVP","AVC","WCQ"}
Returns: -1
{"BKD","BKD","JOS","DKJ","OBS","BOK","DBK","SBD","DSB","OSJ","SDJ","JOS","OBS","SJO","DBK","JKO","DKJ","KOJ","KDB","KOJ","SBD","KJD","OKB","BKD","OSJ","BSO","KDB","SDJ","BSO","SOB","OJK","BOK","SBD","KJD","JSD"}
Returns: -1
{"BRK","BYC","YCB","VKR","YVC","CRB","RBC","BRK","CRB","BYC","CRB","VRC","CBY","RCV","YVC","RBC","VCY","YCB","CVR","CVR","VKR","VKR","CBY","RVK","YCB","VKR","VRC","YBK","CVR","RBC","KVY","RCV","YVC","BYC","RBC","KRV","KVY","KBR","RKB","KBR","YVC","BKY","YCB"}
Returns: -1
{"SWB","WSB","SFB","SBF","BWS","WSB","SBF","BFS","WBS","BSF","FBS","FBS","WSB","BSW","WBS","FSB","FBS","SWB","BSF","WSB","SWB","WBS","BSF","BSW","BSW","WBS","BFS","FBS","SBF","FBS"}
Returns: 1
{"REK","YXK","YEN","ENY","RXN","YEN","NER","XYN","KXR","REK","XYN","XYN","KYX","XNR","KXR","REK","KRE","EYK","KRE","RKX","YXK","NRX","EYK","ENY","KXR","XYN","RXN","YXK","KXR","ERN","RNE","REK","REK","ENY","XYN","RKX","YEN","KYX","XYN","REK","RKX","XYN","EYK","XYN"}
Returns: -1
{"VSG","GSZ","EGZ","GZE","ZGS","GZE","SGV","GSZ","EVG","EVG","GZE","SGV","VEB","VBS","ZSB","VEB","BEZ"}
Returns: -1
{"ZJE","JGJ","JGE","ZJE","JGJ","EGQ","EZJ","QEG","JGJ","EZJ","JGJ","EGQ","JGJ","ZQJ","JQG","JJG","QZE","ZJE","JZQ","EZJ","ZQJ","QGJ","JJG"}
Returns: 1
{"HPI","PCJ","PCJ","RIJ","CRJ","IRH","PHC","JPC","HIR","IHP","RIJ","IRH","HIR","CJP","IPJ","RIJ","IPJ","CRJ","RIJ","RHI","HRC","HPI","JIP","PCJ","CJP","IHP","RHI","RJC","PCJ","RIJ","CJP","HPI","CHR","RHI","HIR","CRJ","RIJ","IHP","CRJ","HRC","CRJ","JIP","IPJ"}
Returns: -1
{"BRU","RUB","QBG","RBQ","QRB","GJQ","JQG","RQJ","RBQ","UGB","BRU","RQJ","GBU","GQB","GQB"}
Returns: -1
{"NCZ","TZA","NTE","TZA","AET","ACE","ATZ","NZT","EAC","ETA","ZNC","ZNC","AET","ETA","EAC","ACE","ZTN","NZT","TZA","CEA","AZC","EAC","ZAT","AZC","NCZ","CAZ","ZTN","AZC","CNE","AZC","AZC","TNZ","CAZ","NTE","CZN","TZA"}
Returns: -1
{"SDG","DHG","SUD","SDG","SDG","SUD","SHU","HSG","GHH","SHU","GHH","DGS","HGD","UHH","DGS","SHU","HGH","GHS","SHU","SDG","HSG","SDG","DUH","GSD","SUD","SHU","HUH","HUS","HHU","SUD","SDG","HHG","GSD","HDU","GDH","GHH","GDH","HGD","DGS","HHU","UHD"}
Returns: 6
{"LHK","KHY","WLK","ALW","YKH","YKH","LWA","LHK","LWA","AWY","AHL","LAH","ALW","LHK","WKY","LAH","YKH","WAL","AWY","AWY","HYK","WYA","HAY"}
Returns: -1
{"NIU","NUV","VVD","VNU","VNU","DVV","UVN","IDV","UNI","NIU","DIN","UIV","DNV","DIN","UIV","UVV","DVI","UNI","IDV","UNI","IVU","NVD","VNU","VVD","VVD","DVI","IVU","NUV","VNU","UVV","DIN","NVD","IVU","IND","UIV","IUN","IVU","IND","NUV"}
Returns: 2
{"IYK","FYI","IXF","YQK","XIK","IXF","FIX","YIF","YQK","YIF","FXQ","IKX","KXI","KIY","QKY","QFX","FQY","FQY","YIF","QXK","FQY","XKQ","YFQ","IKX","FIX","XFI","FYI","FXQ","FYI","YIF","YKI","XQF","YFQ","IFY","YFQ","KQX","KXI","QKY","XFI","IXF","XFI","XKQ","QXK","FYI","XIK","IFY","KYQ","XFI"}
Returns: -1
{"KKK","KPK","KWL","PWK","WPL"}
Returns: 0
{"KGK","GKD","MKX","KMK","KKG","DXG","GXK","KMD","KGX","XMK","KGK","MDK","KMK","GDX","DKM","KGK","MDK","XGD","XGD","GDX","MDK","KMK","DXG","KGX","MDK"}
Returns: 0
{"BOL","OLB","LZQ","QLZ","ZMQ","ZLO","MBQ","LZQ","ZQL","MZO"}
Returns: -1
{"WSO","WSO","VVW","SSO","VVW","VSV","SVW","SSO","OWS","VSV","OSO","SWS","OWS","WWS","WSV","SVW","WVW","SWS","OSO","VSO","OVW"}
Returns: 2
{"YKX","YWR","KWR","XKX","YKX","WRK","XRK","XKW","YRK","XKW","KRK","WWR","WKX","KRK","KKX","KKX","YRK"}
Returns: 2
{"UKU","KKD"}
Returns: 0
{"JUY","OYJ","JJU","OYJ","PYJ","UJU","UYO","PUY","OJU","PUY","UYO","JJU","PYJ","OJU","YYJ","YUY","YYJ","OYO","PJU","OYJ","UYO","PJU","PYO","PUY","PYJ","PUY"}
Returns: 1
{"LTL","LAT","ALA","LTL","ATL","TTL"}
Returns: 0
{"CEW","WCE","EEW","WEQ","EEQ","RCE","CCE","CCE","ECE","EEQ","REQ","REQ","RCE","WEQ","ECE","WWC"}
Returns: 2
{"RNQ","IQR","RRN","RRI","NQR","RRN","RRI","NQR","RRI","RNQ","RRI"}
Returns: 1
{"KNC","TQK","QCQ","TQK","KNC","QNC","CNC","TCQ","CQK","KNC","TQK","NQK","QQN","KCQ","CCQ","NCQ","CCQ","TQN","QNC","TQK","QQK","TCQ","TQK","QNC","KQN","TQN","CQN","CNC","KNC","TQN","CCQ","TQK","QQN","KCQ","QCQ","NNC","KQK","CQK","CNC","QQN","QQK","NCQ","QQN","QNC","CQK"}
Returns: 2
{"DKY","KKL","KKY","KYD","KYD","ZKY","YYD","DKY","KDK","KKL","YKY","KKY","DKY","DDK","LKL","YYD","KKY","KKL","DYD","ZKL","LDK","DDK","ZKL","YDK","DKY"}
Returns: 1
{"GWG","GGA","FGA","WGA","KWG"}
Returns: 0
{"PHH","PHH","GHW","WHW","PHH","HHW","PHH","WWH","PWG","WWH","HWH","WHH","GHH","WHH","HWH","HHW","HWG","WWG","HHW","WHH","HWG","GHH","HHH","PWH","WWG","HHW","WHH","PWG"}
Returns: 0
{"ZIT","TTZ","IZT","TIT","IZT","ZIT","TTZ"}
Returns: 1
{"IIK","IXI","HXI","XKX","IIO","OIK","KIO","IIK","IKX","HIO","IIO","HIO","XXI","KIK"}
Returns: 0
{"WJG","VVJ","VGV","JVW","VGV","GGV","WJG","WJG","VGV","GVW","WVW","GJG","JGV","QGV","JVJ","VGV","QGV","JGV","QGV","VVJ","QGV","JVW","JVW","WVW","WGV","QGV","GVW","VVJ","QVW","VJG"}
Returns: 1
{"IIF","IIF","LIL","IFD","LIL","LIF","DDI","IFD","LFD","MDI","LFD","IFD","IFD","LIF","IFD","FFD","IIF","IDI","IDI","MIL","LIL","IFD","LIL","LIL","FIF","IDI","IDI","MIF","LDI","IIL","LFD","LFD","MIF","FIF","LIF"}
Returns: 0
{"LBL","LLV","VVW","LBL","WVW","VBL"}
Returns: 0
{"SUS","VVK","GUS","USV","KVU","VVU","SSV","VVK","UVK","VVK","VVU","GUS","GUS","KUS","VVK","GVU","USV","VUS","SUS","SUS","VUS","VSV","SVK","GSV","GUS","SSV","KVU","SVU","VUS","KUS","KVU","USV","GVU","KVU","UVU","VVU","UVK","VVU","SVU","SVU","VSV","VVK","SUS","UUS","GVK","GSV","SUS","VUS","VVK","VSV"}
Returns: 0
{"SAS","AAS","SAI","AJA","SAI","JJA","LAS","SIJ","SJA","AAS","SAI","IJA","JJA","AAS","SAS","IIJ","IJA","JAS","AIJ","IIJ","SIJ","JJA","AAS","LAI","AJA","AAI","AAS","LAI","IJA","JAI","IJA","IJA","JIJ","SAI","AIJ","LJA","JIJ","JAI","AJA","JAS","SJA","JIJ","AAS","AIJ"}
Returns: 0
{"VLV","LLV","KLK","VLV","LLV","LVG","XVG","GVG","KVG","GLV","LGL","VLV","LLV","XLK","LLV","XLK","KGL","XGL","KLV","KGL","XLK","KGL","LLK","VVG","VLV","LGL","XVG"}
Returns: 0
{"IFI","FYF","IIY","FIY","ZIY","YIL","ZIL","LYF","YYF","LIL","IYF","LYF","LIL","IIY","ZIY","YIY","ZYF","YYF","LIY","LIY","ZIY","YYF","FIL","LYF","IIY","IYF","IYF","FYF","ZIY","FYF","YFI","YYF","IYF","LIL","IIL","LFI","YYF","IFI","ZIY","ZFI","IIY","ZIL","LIL","YIY","IIY","ZYF","LYF","YIL"}
Returns: 0
{"NMT","FTM","WNT","TWN","MNF","FMN","TNM","TTW","WFN","TTM","MTN","WTF","TFW","MNF","TWT","TMT","FTM","FWT","NMT","FMN","TFW","NTW","TMF","NFM","MFT","WTT","MNF","MNF","NWF","WTF","TNM","WTF","MTT","TWT","TMF","TMF","FTM","NWF","FTM","NFM","FWT","TTW","MTT","FWT","NMT"}
Returns: 4
{"SQD","LSD","HLD","SDL","SSQ","HLD","LSD","QDS","QDS","SQD","DQH","QHD","LSS","LSS","SSL","SSQ","DSQ","HLD","HSL","DSQ","HSL","SQS","HDQ","HSL","HDQ","QHD","SSL","QHD","SDL","SSL","DLS","HQS","QSS","HSL","HDQ","DHL","LHS","LSS","SSL","QSH","SDL"}
Returns: 4
{"JOB","MGB","GJB"}
Returns: -1
{"EHC","ELH","WWC","CEH","CWE","ECW","ECW","HCE","CHW","CEH","HWC","ELH","HLW","EHC"}
Returns: 2
{"MMW","LHW","WML","MMS","MSL","SHL","MSM","SHL","SLM","HLS","MWM","LMS","SHL","HLS","WMM","SMM","LHW","LHW","HSM","WML","SHL","WHM","SMM","MWH","LWM","SLM","MLW","WHM","MMS","HLS","MSM","WLH"}
Returns: 0
{"YLT","XYT","TYL","XYT","LLY","YLL","XLY","LXL","LXL","LLY"}
Returns: 4
{"SQI","QXA","IIA","QIS","AIQ","XAQ","IIS","SQI","IXS","XSI","XSI","SII","AXI","IXS","XAQ","IAX","AII","XAQ","QXA","ISQ","ISI","SXQ","AQX","XSI"}
Returns: 2
{"IBX","AXG","IXB","XGA"}
Returns: 2
{"CQF","FHQ","FCG","CQF","FGH","HQF","QHF","GHF","CQF"}
Returns: 1
{"AFV","YTF","TYF","FVA","VAF","YVF","VYF","TYF","FTA","FTY","FVY","AVF","YVF","YFV","VYF","FYV","AVF","AVF","YFT","AFT","AFT","TYF","TYF"}
Returns: 2
{"VCH","VCH","VCC","CAC","ACC","CHV"}
Returns: 2
{"THO","HOP","HPO","OHP","OPH","HPO","POF","OPH","POH","FPO","TOF","OTH","HOT","POF","OTH","POH","FOT","OFT","OTH","HOP","PFO","OPF","TOF","FPO","HPO","OHP","OFT","FOP","OTF","HTO","OTH","FOT","HTO","POH","POF","FOP","THO","TOH","HTO","OFP","HOT","OHP","HOT"}
Returns: 1
{"NFP","PVF","VUP","UPV","PFV","PVU","NPF"}
Returns: 1
{"SBE","XBP","PSB","SEB","XEB","XEB","EBS","EBS","XEB","ESB","BPS","XBP","PBS","PSB","XPB","BXP","BXP","BPX","XBP","BPX","BXE","EBX","PBX","BXE","EXB","XEB","BXE","BES","BXE","BSE","EBX","PXB","EBX","XPB","EXB","PBX"}
Returns: 2
{"TZW","QTZ","WVZ","ZWT","TZW","ZTW","QZT","WVZ","ZWV","VZQ","VZW","ZTQ","VQZ","WVZ","TQZ","TQZ","VZQ","WTZ","ZWV"}
Returns: 1
{"USJ","ULE","EUL","USL","LUS","JEU","JUE","SLU","UJS","ULS","LEU","SLU","SLU","ULS","UEJ","UEJ","LSU","ELU","JEU","UEJ","JEU","LUS","JUS","LUE","LUS","LEU","EJU","SLU","LSU","JSU","LUS","SJU","UJS"}
Returns: 3
{"HJW","WQH","WHJ","KWJ","WQH","KQW","QWH","JWH","JKW","HQW","QHW","JKW","QWH","QWH","KWJ","QWK","WHQ","KWQ","HWJ","WKQ","QKW","WKJ","WJK","QWK","WKJ","WHJ"}
Returns: 6
{"ABK","AKB","AKB","KAR","BKB","BAK","BKA","ABK","BBK","KBA","RKA","KBR","BRK","KBB","KAR","KBB","BBK","RAK","AKR","KBB","KAR","BKB","BKB","RKB","BBK","BKA","BKB","BAK","AKR","KRA","BKR","ARK","ABK","BKB"}
Returns: 1
{"EVG","GEA","HEA","GAE","GAE","EGA","HAE","EAG","VEG","HEA","AEG","GVE","EHA","GEV","EGV","EAH","EVH","GEA","VEG","EHA","EHA","GAE","GEV","EHA","GEA","VEG","EVH","VHE","GVE","EVG","AEH","VHE","AEG","VGE","AEH","HVE","AHE","AEH","AEH","EVG","EGV","GEA","AHE","AEG","GEV","GEV","EAH","GAE"}
Returns: 1
{"ZYR","RYW","RWI","YWR","RIW","RIZ","WRY","ZYR","RZI","IZR","WRY","IRZ","YWR","IZR","RYW","YZR","RZY","ZRI","ZYR","IRW","WYR","WRI","YWR","IRW","RIW","RZY","WIR","IZR","WYR","WIR","WYR","RIZ","RYW","ZRI","RWI","YWR","RYZ","RYZ","WRY"}
Returns: 4
{"SFX","FEX","SFX","XFS","FGS","XFS","FXE","XFS","FSX","EGF","GFE","SFX","FGE","SFG","FXE","SFX","FXE","EGF","GEF","FXS","XFE","FEX","FXE","SFG","XFE","XEF","FXS","GEF","XFE","GEF","FGS","FGS","XFE"}
Returns: 3
{"KOV","VKU","UKV","UKV","VKO","VOK","VKO","KOV","KVU","VKO"}
Returns: 1
{"XPI","MXP","PZM","IZP","ZIP","PXM","PMZ","PMZ","IXP","PMZ","ZPI","ZPM","XPI","MXP","IZP","IZP","PXI","PIZ","PMZ","PIZ","PXI","MPZ","PIX","ZPI","PXI","XMP","XPM","PMZ","XMP","PMX","ZPM","PMX","MPX","MPX","MZP","ZMP","MPZ","MZP","MZP","MPZ","PZI","IPX","PZI","MXP","IPX","PMX"}
Returns: 1
{"CIT","TCI","TIC","CIT","ICP","IPC","ITC","TIS","PSI","IPC","IST","TIS","CIT","ISP","TIC","CIP","PIC","TSI","SIP","ITC"}
Returns: 2
{"BEG","GBE","EXG","GEX","GBE","BAE","GEB","XEA","AXE","BAE","BEG","BAE","XEA","BGE","XEG","AEB","EGX","EGX","GEX","BGE","EBA","GEB","XGE","XEG","BEG","EGB","EXG","EGX","GXE"}
Returns: 6
{"CQL","SCL","LCS","LCS","LSC","CLS","CSL","COQ","CLQ","CSL","CQL","LQC","CLS","COQ","OSC","OSC","OCS","LCQ","SCL","SOC","SLC","CLS","CQL","SOC","LCQ","COQ"}
Returns: 2
{"CCR","CCR","CXR","CCO","RCC","CXR","RXC","CXO"}
Returns: 0
{ "ACE", "AEC" }
Returns: 1
{ "ABC", "DEF", "BCA", "GHI", "ABC" }
Returns: 3
{ "ABC", "ADB", "ACB", "XYZ" }
Returns: 2
{ "ABC", "AFB", "FDC" }
Returns: 2
{ "ABC", "DEF", "BCD" }
Returns: 2
{ "ABC", "ACD", "ADE", "AEF" }
Returns: 3
{ "ABC", "DEF", "DCB" }
Returns: -1
{ "ABC", "CBD", "BAD" }
Returns: 2
{ "ABC", "EFD", "FAE" }
Returns: 2
{ "ABE", "AED", "ADC", "ACB", "CFB", "CBA", "CAD", "CDF", "DAE", "DEF", "DFC", "DCA", "BAC", "BCF", "BFE", "BEA", "EBF", "EFD" }
Returns: -1
{ "ABC", "FED", "EFC" }
Returns: -1