首頁  >  文章  >  Java  >  Leetcode——字串的分數

Leetcode——字串的分數

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-02 13:56:02802瀏覽

Leetcode — Score of a String

這是 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn