2025年11月11日 星期二

用Lua算UTF-8字串的長度

 7 kyu: Count of codepoints in a UTF-8 string

題目是算UTF-8字串的長度,

這題我實在不知道啥好方法,

可能也不太了解題目,

但是想到這種格式轉換,

在實際應用上,都是直接查答案的,

因此就直接問AI了,

AI的解法如下:

local function count_codepoints(s)
    local count = 0
    for i = 1, #s do
        local b = s:byte(i)
        -- b < 128: ASCII
        -- b >= 192: UTF-8 leading byte
        if b < 128 or b >= 192 then
            count = count + 1
        end
    end
    return count
end

return count_codepoints

不過這題AI最先的解法,

其實很多餘,

Lua 5.3+Lua 5.4 裡,其實已經內建,

採用以下的解法就好:

return utf8.len


沒有留言:

張貼留言

Basic Blind Chess的兩大問題

 Basic Blind Chess已經好久沒更新了, Windows版可以獲得最好的遊戲体驗, 但是Android版的,不只是比較舊, 它其實存在兩大問題: 1. 拿子移動時,顯示怪怪的,只顯示前幾個移動的殘影。 這個只有在最早的版本,沒有這個問題, 但是最早的版本實機測試時,...