- 题目链接 https://leetcode.cn/problems/longest-nice-substring/
方法签名
public String longestNiceSubstring(String s);
测试用例
@Testpublic void test_longestNiceSubstring_success() {LongestNiceSubstringSol sol = new LongestNiceSubstringSol();Assert.assertEquals("aA", sol.longestNiceSubstring("aAzaHZ"));Assert.assertEquals("aAa", sol.longestNiceSubstring("YazaAay"));Assert.assertEquals("Bb", sol.longestNiceSubstring("Bb"));Assert.assertEquals("dD", sol.longestNiceSubstring("dDzeE"));}
朴素暴力解 ```java public String longestNiceSubstring(String s) { char[] chars = s.toCharArray(); int n = chars.length;
int start = -1; int maxLen = 0;
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {if (j-i+1 > maxLen && checkNiceSubstring(chars, i, j)) {start = i;maxLen = j-i+1;}}
} return start == -1 ? “” : s.substring(start, start+maxLen); }
private boolean checkNiceSubstring(char[] chars, int i, int j) {
Set
- 前缀和
- 二进制优化
