这是 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中文网其他相关文章!