最长子序列
程序员文章站
2024-02-24 23:42:46
...
给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。
public int longestPalindrome2nd(String s) {
char[] chas = s.toCharArray();
Map<Character, Integer> map = new HashMap<>();
for (int i = 0; i < chas.length; i++) {
map.put(chas[i], map.getOrDefault(chas[i], 0) + 1);
}
int result = 0;
for (int cnt : map.values()) {
result += cnt / 2 * 2; //统计出可以算入回文串长度的个数,/取整
if (result<s.length()) {
result++;
}
}
return result;
}
o(n),o(1)注意空间复杂度是o(1)因为字母的个数是确定不随输入而改变
上一篇: 好玩的modelsim波形仿真显示汉字
下一篇: 51 nod 1134 最长递增子序列