2017年10月15日日曜日

重複しない文字列

問題

入力されたUNICODE文字列が、重複する文字がないかどうか判定するプログラムを書く

ASCIIコードは128種類らしいので、文字列の長さが128を超えたとすると、重複していることになります。
128個と要素数が決まっているので、boolean型で配列を確保して判定するのが
すぐ思いつくやり方だろうか

kotlin

fun isUniqueChars(str: String): Boolean {
    if (str.length > 128) return false
    var charSet = BooleanArray(128);

    for (char in str) {
        var value: Int = char.toInt();
        if (charSet[value]) {
            return false
        }
        charSet[value] = true
        return true
    }
    return true
}

0 件のコメント:

コメントを投稿