#Java, (削除) 1062 (削除ここまで) 964 bytes
Java, (削除) 1062 (削除ここまで) 964 bytes
s->{String t="Arstotzka",a[]="AlabamaMontgomeryAlaskaJuneauArizonaPhoenixArkansasLittle RockCaliforniaSacrementoColoradoDenverConecticutHartfordDelawareDoverFloridaTallahasseeGeorgiaAtlantaHawaiiHonoluluIdahoBoiseIllinoisSpringfieldIndianaIndianapolisIowaDes MoinesKansasTopekaKentuckyFrankfortLouisianaBaton RougeMaineAugustaMarylandAnnapolisMassachusettsBostonMichiganLansingMinnesotaSaint PaulMississippiJacksonMissouriJefferson CityMontanaHelenaNebraskaLincolnNevadaCarson CityNew HampshireConcordNew JerseyTrentonNew MexicoSanta FeNew YorkAlbanyNorth CarolinaRaleighNorth DakotaBismarckOhioColumbusOklahomaOklahoma CityOregonSalemPennsylvaniaHarrisburgRhode IslandProvidenceSouth CarolinaColumbiaSouth DakotaPierreTennesseeNashvilleTexasAustinUtahSalt Lake CityVermontMontpelierVirginiaRichmondWashingtonOlympiaWest VirginiaCharlestonWisconsinMadisonWyomingCheyenne".split("(?<=[a-z])(?=[A-Z])");for(int k=-1;k++<99;t=s.equals(a[k])?a[k%2*-2-~k]:t);return t;}
-17 bytes thanks to @KevinCruijssen.
Pretty straightforward; if a match is found, then add to or subtract from the current index of the array depending on whether it is even or odd. Otherwise print "Arstotzka".
The majority of bytes saved was due to removing the 99 :s and splitting the string based on the regex (?<=[a-z])(?=[A-Z]), which uses a positive lookbehind and lookahead to check for a difference in casing.
#Java, (削除) 1062 (削除ここまで) 964 bytes
s->{String t="Arstotzka",a[]="AlabamaMontgomeryAlaskaJuneauArizonaPhoenixArkansasLittle RockCaliforniaSacrementoColoradoDenverConecticutHartfordDelawareDoverFloridaTallahasseeGeorgiaAtlantaHawaiiHonoluluIdahoBoiseIllinoisSpringfieldIndianaIndianapolisIowaDes MoinesKansasTopekaKentuckyFrankfortLouisianaBaton RougeMaineAugustaMarylandAnnapolisMassachusettsBostonMichiganLansingMinnesotaSaint PaulMississippiJacksonMissouriJefferson CityMontanaHelenaNebraskaLincolnNevadaCarson CityNew HampshireConcordNew JerseyTrentonNew MexicoSanta FeNew YorkAlbanyNorth CarolinaRaleighNorth DakotaBismarckOhioColumbusOklahomaOklahoma CityOregonSalemPennsylvaniaHarrisburgRhode IslandProvidenceSouth CarolinaColumbiaSouth DakotaPierreTennesseeNashvilleTexasAustinUtahSalt Lake CityVermontMontpelierVirginiaRichmondWashingtonOlympiaWest VirginiaCharlestonWisconsinMadisonWyomingCheyenne".split("(?<=[a-z])(?=[A-Z])");for(int k=-1;k++<99;t=s.equals(a[k])?a[k%2*-2-~k]:t);return t;}
-17 bytes thanks to @KevinCruijssen.
Pretty straightforward; if a match is found, then add to or subtract from the current index of the array depending on whether it is even or odd. Otherwise print "Arstotzka".
The majority of bytes saved was due to removing the 99 :s and splitting the string based on the regex (?<=[a-z])(?=[A-Z]), which uses a positive lookbehind and lookahead to check for a difference in casing.
Java, (削除) 1062 (削除ここまで) 964 bytes
s->{String t="Arstotzka",a[]="AlabamaMontgomeryAlaskaJuneauArizonaPhoenixArkansasLittle RockCaliforniaSacrementoColoradoDenverConecticutHartfordDelawareDoverFloridaTallahasseeGeorgiaAtlantaHawaiiHonoluluIdahoBoiseIllinoisSpringfieldIndianaIndianapolisIowaDes MoinesKansasTopekaKentuckyFrankfortLouisianaBaton RougeMaineAugustaMarylandAnnapolisMassachusettsBostonMichiganLansingMinnesotaSaint PaulMississippiJacksonMissouriJefferson CityMontanaHelenaNebraskaLincolnNevadaCarson CityNew HampshireConcordNew JerseyTrentonNew MexicoSanta FeNew YorkAlbanyNorth CarolinaRaleighNorth DakotaBismarckOhioColumbusOklahomaOklahoma CityOregonSalemPennsylvaniaHarrisburgRhode IslandProvidenceSouth CarolinaColumbiaSouth DakotaPierreTennesseeNashvilleTexasAustinUtahSalt Lake CityVermontMontpelierVirginiaRichmondWashingtonOlympiaWest VirginiaCharlestonWisconsinMadisonWyomingCheyenne".split("(?<=[a-z])(?=[A-Z])");for(int k=-1;k++<99;t=s.equals(a[k])?a[k%2*-2-~k]:t);return t;}
-17 bytes thanks to @KevinCruijssen.
Pretty straightforward; if a match is found, then add to or subtract from the current index of the array depending on whether it is even or odd. Otherwise print "Arstotzka".
The majority of bytes saved was due to removing the 99 :s and splitting the string based on the regex (?<=[a-z])(?=[A-Z]), which uses a positive lookbehind and lookahead to check for a difference in casing.
#Java, (削除) 1062 (削除ここまで) 964 bytes
s->{String t="Arstotzka",a[]="AlabamaMontgomeryAlaskaJuneauArizonaPhoenixArkansasLittle RockCaliforniaSacrementoColoradoDenverConecticutHartfordDelawareDoverFloridaTallahasseeGeorgiaAtlantaHawaiiHonoluluIdahoBoiseIllinoisSpringfieldIndianaIndianapolisIowaDes MoinesKansasTopekaKentuckyFrankfortLouisianaBaton RougeMaineAugustaMarylandAnnapolisMassachusettsBostonMichiganLansingMinnesotaSaint PaulMississippiJacksonMissouriJefferson CityMontanaHelenaNebraskaLincolnNevadaCarson CityNew HampshireConcordNew JerseyTrentonNew MexicoSanta FeNew YorkAlbanyNorth CarolinaRaleighNorth DakotaBismarckOhioColumbusOklahomaOklahoma CityOregonSalemPennsylvaniaHarrisburgRhode IslandProvidenceSouth CarolinaColumbiaSouth DakotaPierreTennesseeNashvilleTexasAustinUtahSalt Lake CityVermontMontpelierVirginiaRichmondWashingtonOlympiaWest VirginiaCharlestonWisconsinMadisonWyomingCheyenne".split("(?<=[a-z])(?=[A-Z])");for(int k=-1;k++<99;t=s.equals(a[k])?a[k%2*-2-~k]:t);return t;}
-17 bytes thanks to @KevinCruijssen.
Pretty straightforward; if a match is found, then add to or subtract from the current index of the array depending on whether it is even or odd. Otherwise print "Arstotzka".
The majority of bytes saved was due to removing the 99 :s and splitting the string based on the regex (?<=[a-z])(?=[A-Z]), which uses a positive lookbehind and lookahead to check for a difference in casing.
#Java, (削除) 1062 (削除ここまで) 964 bytes
s->{String t="Arstotzka",a[]="AlabamaMontgomeryAlaskaJuneauArizonaPhoenixArkansasLittle RockCaliforniaSacrementoColoradoDenverConecticutHartfordDelawareDoverFloridaTallahasseeGeorgiaAtlantaHawaiiHonoluluIdahoBoiseIllinoisSpringfieldIndianaIndianapolisIowaDes MoinesKansasTopekaKentuckyFrankfortLouisianaBaton RougeMaineAugustaMarylandAnnapolisMassachusettsBostonMichiganLansingMinnesotaSaint PaulMississippiJacksonMissouriJefferson CityMontanaHelenaNebraskaLincolnNevadaCarson CityNew HampshireConcordNew JerseyTrentonNew MexicoSanta FeNew YorkAlbanyNorth CarolinaRaleighNorth DakotaBismarckOhioColumbusOklahomaOklahoma CityOregonSalemPennsylvaniaHarrisburgRhode IslandProvidenceSouth CarolinaColumbiaSouth DakotaPierreTennesseeNashvilleTexasAustinUtahSalt Lake CityVermontMontpelierVirginiaRichmondWashingtonOlympiaWest VirginiaCharlestonWisconsinMadisonWyomingCheyenne".split("(?<=[a-z])(?=[A-Z])");for(int k=-1;k++<99;t=s.equals(a[k])?a[k%2*-2-~k]:t);return t;}
-17 bytes thanks to @KevinCruijssen.
Pretty straightforward; if a match is found, then add to or subtract from the current index of the array depending on whether it is even or odd. Otherwise print "Arstotzka".
The majority of bytes saved was due to removing the 99 :s and splitting the string based on the regex (?<=[a-z])(?=[A-Z]), which uses a positive lookbehind and lookahead to check for a difference in casing.
#Java, (削除) 1062 (削除ここまで) 964 bytes
s->{String t="Arstotzka",a[]="AlabamaMontgomeryAlaskaJuneauArizonaPhoenixArkansasLittle RockCaliforniaSacrementoColoradoDenverConecticutHartfordDelawareDoverFloridaTallahasseeGeorgiaAtlantaHawaiiHonoluluIdahoBoiseIllinoisSpringfieldIndianaIndianapolisIowaDes MoinesKansasTopekaKentuckyFrankfortLouisianaBaton RougeMaineAugustaMarylandAnnapolisMassachusettsBostonMichiganLansingMinnesotaSaint PaulMississippiJacksonMissouriJefferson CityMontanaHelenaNebraskaLincolnNevadaCarson CityNew HampshireConcordNew JerseyTrentonNew MexicoSanta FeNew YorkAlbanyNorth CarolinaRaleighNorth DakotaBismarckOhioColumbusOklahomaOklahoma CityOregonSalemPennsylvaniaHarrisburgRhode IslandProvidenceSouth CarolinaColumbiaSouth DakotaPierreTennesseeNashvilleTexasAustinUtahSalt Lake CityVermontMontpelierVirginiaRichmondWashingtonOlympiaWest VirginiaCharlestonWisconsinMadisonWyomingCheyenne".split("(?<=[a-z])(?=[A-Z])");for(int k=-1;k++<99;t=s.equals(a[k])?a[k%2*-2-~k]:t);return t;}
-17 bytes thanks to @KevinCruijssen.
Pretty straightforward; if a match is found, then add to or subtract from the current index of the array depending on whether it is even or odd. Otherwise print "Arstotzka".
The majority of bytes saved was due to removing the 99 :s and splitting the string based on the regex (?<=[a-z])(?=[A-Z]), which uses a positive lookbehind and lookahead to check for a difference in casing.
#Java, 1062(削除) 1062 (削除ここまで) 964 bytes
s->{String t="Arstotzka",a[]="Alabama:Montgomery:Alaska:Juneau:Arizona:Phoenix:Arkansas:Littlea[]="AlabamaMontgomeryAlaskaJuneauArizonaPhoenixArkansasLittle Rock:California:Sacremento:Colorado:Denver:Conecticut:Hartford:Delaware:Dover:Florida:Tallahassee:Georgia:Atlanta:Hawaii:Honolulu:Idaho:Boise:Illinois:Springfield:Indiana:Indianapolis:Iowa:DesRockCaliforniaSacrementoColoradoDenverConecticutHartfordDelawareDoverFloridaTallahasseeGeorgiaAtlantaHawaiiHonoluluIdahoBoiseIllinoisSpringfieldIndianaIndianapolisIowaDes Moines:Kansas:Topeka:Kentucky:Frankfort:Louisiana:BatonMoinesKansasTopekaKentuckyFrankfortLouisianaBaton Rouge:Maine:Augusta:Maryland:Annapolis:Massachusetts:Boston:Michigan:Lansing:Minnesota:SaintRougeMaineAugustaMarylandAnnapolisMassachusettsBostonMichiganLansingMinnesotaSaint Paul:Mississippi:Jackson:Missouri:JeffersonPaulMississippiJacksonMissouriJefferson City:Montana:Helena:Nebraska:Lincoln:Nevada:CarsonCityMontanaHelenaNebraskaLincolnNevadaCarson City:NewCityNew Hampshire:Concord:NewHampshireConcordNew Jersey:Trenton:NewJerseyTrentonNew Mexico:SantaMexicoSanta Fe:NewFeNew York:Albany:NorthYorkAlbanyNorth Carolina:Raleigh:NorthCarolinaRaleighNorth Dakota:Bismarck:Ohio:Columbus:Oklahoma:OklahomaDakotaBismarckOhioColumbusOklahomaOklahoma City:Oregon:Salem:Pennsylvania:Harrisburg:RhodeCityOregonSalemPennsylvaniaHarrisburgRhode Island:Providence:SouthIslandProvidenceSouth Carolina:Columbia:SouthCarolinaColumbiaSouth Dakota:Pierre:Tennessee:Nashville:Texas:Austin:Utah:SaltDakotaPierreTennesseeNashvilleTexasAustinUtahSalt Lake City:Vermont:Montpelier:Virginia:Richmond:Washington:Olympia:WestCityVermontMontpelierVirginiaRichmondWashingtonOlympiaWest Virginia:Charleston:Wisconsin:Madison:Wyoming:Cheyenne"VirginiaCharlestonWisconsinMadisonWyomingCheyenne".split(":(?<=[a-z])(?=[A-Z])");for(int k=-1;k++<99;t=s.equals(a[k])?a[k+(k%2<1?1:a[k%2*-1)]2-~k]:t);System.out.print(t);;return t;};
-17 bytes thanks to @KevinCruijssen.
Pretty straightforward; if a match is found, then add to or subtract from the current index of the array depending on whether it is even or odd. Otherwise print "Arstotzka".
The majority of bytes saved was due to removing the 99 :s and splitting the string based on the regex (?<=[a-z])(?=[A-Z]), which uses a positive lookbehind and lookahead to check for a difference in casing.
#Java, 1062 bytes
s->{String t="Arstotzka",a[]="Alabama:Montgomery:Alaska:Juneau:Arizona:Phoenix:Arkansas:Little Rock:California:Sacremento:Colorado:Denver:Conecticut:Hartford:Delaware:Dover:Florida:Tallahassee:Georgia:Atlanta:Hawaii:Honolulu:Idaho:Boise:Illinois:Springfield:Indiana:Indianapolis:Iowa:Des Moines:Kansas:Topeka:Kentucky:Frankfort:Louisiana:Baton Rouge:Maine:Augusta:Maryland:Annapolis:Massachusetts:Boston:Michigan:Lansing:Minnesota:Saint Paul:Mississippi:Jackson:Missouri:Jefferson City:Montana:Helena:Nebraska:Lincoln:Nevada:Carson City:New Hampshire:Concord:New Jersey:Trenton:New Mexico:Santa Fe:New York:Albany:North Carolina:Raleigh:North Dakota:Bismarck:Ohio:Columbus:Oklahoma:Oklahoma City:Oregon:Salem:Pennsylvania:Harrisburg:Rhode Island:Providence:South Carolina:Columbia:South Dakota:Pierre:Tennessee:Nashville:Texas:Austin:Utah:Salt Lake City:Vermont:Montpelier:Virginia:Richmond:Washington:Olympia:West Virginia:Charleston:Wisconsin:Madison:Wyoming:Cheyenne".split(":");for(int k=-1;k++<99;t=s.equals(a[k])?a[k+(k%2<1?1:-1)]:t);System.out.print(t);};
Pretty straightforward; if a match is found, then add to or subtract from the current index of the array depending on whether it is even or odd. Otherwise print "Arstotzka".
#Java, (削除) 1062 (削除ここまで) 964 bytes
s->{String t="Arstotzka",a[]="AlabamaMontgomeryAlaskaJuneauArizonaPhoenixArkansasLittle RockCaliforniaSacrementoColoradoDenverConecticutHartfordDelawareDoverFloridaTallahasseeGeorgiaAtlantaHawaiiHonoluluIdahoBoiseIllinoisSpringfieldIndianaIndianapolisIowaDes MoinesKansasTopekaKentuckyFrankfortLouisianaBaton RougeMaineAugustaMarylandAnnapolisMassachusettsBostonMichiganLansingMinnesotaSaint PaulMississippiJacksonMissouriJefferson CityMontanaHelenaNebraskaLincolnNevadaCarson CityNew HampshireConcordNew JerseyTrentonNew MexicoSanta FeNew YorkAlbanyNorth CarolinaRaleighNorth DakotaBismarckOhioColumbusOklahomaOklahoma CityOregonSalemPennsylvaniaHarrisburgRhode IslandProvidenceSouth CarolinaColumbiaSouth DakotaPierreTennesseeNashvilleTexasAustinUtahSalt Lake CityVermontMontpelierVirginiaRichmondWashingtonOlympiaWest VirginiaCharlestonWisconsinMadisonWyomingCheyenne".split("(?<=[a-z])(?=[A-Z])");for(int k=-1;k++<99;t=s.equals(a[k])?a[k%2*-2-~k]:t);return t;}
-17 bytes thanks to @KevinCruijssen.
Pretty straightforward; if a match is found, then add to or subtract from the current index of the array depending on whether it is even or odd. Otherwise print "Arstotzka".
The majority of bytes saved was due to removing the 99 :s and splitting the string based on the regex (?<=[a-z])(?=[A-Z]), which uses a positive lookbehind and lookahead to check for a difference in casing.