import java.util.*
fun extractCurrencyAndAmount(input: String): Triple<String, String, Boolean> {
val regex = Regex("""^(\D*)(\d+)(\D*)$""")
val matchResult = regex.find(input)
return if (matchResult != null) {
val (before, amount, after) = matchResult.destructured
val currency = if (after.isEmpty()) before.strip() else after.strip()
val isCurrencyAtFront = after.strip().isEmpty()
Triple(currency, amount, isCurrencyAtFront)
} else {
throw IllegalArgumentException("Invalid input format")
}
}
fun main(args: Array<String>) {
println( extractCurrencyAndAmount("\$100") )
println( extractCurrencyAndAmount("100 \$") )
}
aW1wb3J0IGphdmEudXRpbC4qCgpmdW4gZXh0cmFjdEN1cnJlbmN5QW5kQW1vdW50KGlucHV0OiBTdHJpbmcpOiBUcmlwbGU8U3RyaW5nLCBTdHJpbmcsIEJvb2xlYW4+IHsKICAgIHZhbCByZWdleCA9IFJlZ2V4KCIiIl4oXEQqKShcZCspKFxEKikkIiIiKQogICAgdmFsIG1hdGNoUmVzdWx0ID0gcmVnZXguZmluZChpbnB1dCkKCiAgICByZXR1cm4gaWYgKG1hdGNoUmVzdWx0ICE9IG51bGwpIHsKICAgICAgICB2YWwgKGJlZm9yZSwgYW1vdW50LCBhZnRlcikgPSBtYXRjaFJlc3VsdC5kZXN0cnVjdHVyZWQKICAgICAgICB2YWwgY3VycmVuY3kgPSBpZiAoYWZ0ZXIuaXNFbXB0eSgpKSBiZWZvcmUuc3RyaXAoKSBlbHNlIGFmdGVyLnN0cmlwKCkKICAgICAgICB2YWwgaXNDdXJyZW5jeUF0RnJvbnQgPSBhZnRlci5zdHJpcCgpLmlzRW1wdHkoKQogICAgICAgIFRyaXBsZShjdXJyZW5jeSwgYW1vdW50LCBpc0N1cnJlbmN5QXRGcm9udCkKICAgIH0gZWxzZSB7CiAgICAgICAgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGlucHV0IGZvcm1hdCIpCiAgICB9Cn0KIApmdW4gbWFpbihhcmdzOiBBcnJheTxTdHJpbmc+KSB7CiAgICBwcmludGxuKCBleHRyYWN0Q3VycmVuY3lBbmRBbW91bnQoIlwkMTAwIikgKQogICAgcHJpbnRsbiggZXh0cmFjdEN1cnJlbmN5QW5kQW1vdW50KCIxMDAgXCQiKSApCiAgICAKfQ==