福建做網(wǎng)站公司seo優(yōu)化招商
問題描述
思路分析
生氣只會向后傳播,最后一個(gè)生氣的人一定是最長連續(xù)沒有生氣的人中的最后一個(gè)人,前提是前面得有一個(gè)人生氣。
注意,一次只能傳播一個(gè)人,比如示例1,第一次只會傳播給第一個(gè)P,不會傳播給第二個(gè)P,了解這個(gè)之后,我們再將這個(gè)問題進(jìn)行轉(zhuǎn)化
最后一個(gè)P變生氣,是由離他最近的A傳染的,所以最后一個(gè)P變生氣的時(shí)間,就是最后一個(gè)P和離他最近的A的距離
所以我們只要記錄離最后一個(gè)P最近的A的位置,和最后一個(gè)P的位置,兩個(gè)位置相減就是答案
代碼實(shí)現(xiàn)
?
public class KsInternShip {//思路 最后一個(gè)p變生氣,是由他前面最近的一個(gè)A引起的//所以最后一個(gè)p變成A的時(shí)間,就是最后一個(gè)P和最近的A的距離public int lastToBeAngry(String mood) {if(mood == null || mood.length() <= 1) {return -1;}int lastIndex = 0, res = 0, len = mood.length();for(int i = 0; i < len; i++) {if(mood.charAt(i) == 'A') {lastIndex = i;}else {res = Math.max(res,i - lastIndex);}}return res;}
}
相似題目
洛谷的一道相似題:Angry Students - 洛谷