牛牛想知道在一个字符串s中是否有两个不重叠的子串"NB"和"BN"。
例如,在一个字符串中出现一个子串为"NBN",那么就是有重叠的。
由于字符串可能会很长,所以牛牛无法解决该问题,所以他想请你帮忙,给定一个字符串s,如果有两个不重叠的子串"NB"和"BN",返回"YES",反之,返回"NO"。
"NBN"
"NO"
"NBYBN"
"YES"
保证字符串只由大写字母组成题解:https://blog.nowcoder.net/n/833d1cef0abc4de696b6e82f2c3982d6
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 给定一个字符串s,如果有两个不重叠的子串"NB"和"BN",返回"YES",反之,返回"NO"。 * @param s string字符串 代表题意中的字符串s * @return string字符串 */ string solve(string s) { // write code here int count0 = 0, count1 = 0; for(int i = 0; i < s.size(); i++){ if(count0 >= 1 && count1 >= 1){ return "YES"; } if(s[i] == 'N' && s[i + 1] == 'B' && count0 == 0){ count0 ++; i ++; } else if(s[i] == 'B' && s[i + 1] == 'N'){ count1 ++; i ++; } } if(count0 >= 1 && count1 >= 1){ return "YES"; } return "NO"; } };