這是 leet 程式碼中的一個簡單問題,描述如下:
給你一個字串 s。字串的分數定義為相鄰字元的 ASCII 值之間的絕對差之和。
傳回 s 的分數。範例1:
輸入:s =“你好”
輸出:13說明:
s 中字元的 ASCII 值為:'h' = 104、'e' = 101、'l' = 108、'o' = 111。因此,s 的分數將為 |104 - 101| |101 - 108| |108 - 108| |108 - 111| = 3 7 0 3 = 13.範例2:
輸入:s =“zaz”
輸出:50說明:
s 中字元的 ASCII 值為:'z' = 122,'a' = 97。因此,s 的分數將為 |122 - 97| |97 - 122| = 25 25 = 50.
限制:2 s 僅由小寫英文字母組成。
對此沒有太多要做的,您基本上需要迭代並抓取字串的兩個字符,然後將第一個字符減去第二個字符,並獲取它的絕對值並添加到sum變數中。
從第二個索引開始很重要,以避免越界異常。
要將 char 轉換為 ascii,您基本上可以將其轉換為整數,這樣就可以了。
class Solution { public int scoreOfString(String s) { int sum = 0; for(int i=1;i<s.length();i++){ final int first = (int) s.charAt(i - 1); final int second = (int) s.charAt(i); sum += Math.abs(first - second); } return sum; } }
運行時間:1 毫秒,比 99.37% 的 Java 在線提交的 Score of a String 快。
記憶體使用:42 MB,低於 Java 線上提交的 Score of a String 的 30.18%。
—
就是這樣!如果還有什麼要討論的,請隨時發表評論,如果我錯過了任何內容,請告訴我,以便我進行相應更新。
直到下一篇文章! :)
以上是Leetcode——字串的分數的詳細內容。更多資訊請關注PHP中文網其他相關文章!