これは 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 は英小文字のみで構成されます。
これに関して行うことはあまりありません。基本的に、文字列の 2 文字を反復して取得し、最初の文字から 2 番目の文字を減算して、その絶対値を取得し、合計変数に加算します。
範囲外の例外を避けるために、2 番目のインデックスから開始することが重要です。
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 ミリ秒。文字列のスコアに関する Java オンライン送信の 99.37% よりも高速です。
メモリ使用量: 42 MB、文字列スコアの Java オンライン送信の 30.18% 未満。
—
それだけです!他に議論したいことがあれば、お気軽にコメントしてください。何か見逃した場合はお知らせください。適宜更新します。
次の投稿まで! :)
以上がLeetcode — 文字列のスコアの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。