【面試演算法題】一維消除遊戲
題目說明
三個或者三個以上顏色相同就刪除
比如:紅紅黃黃綠綠綠綠黃藍 消除完了之後是 紅紅藍
實現程式碼
package leetcoode;
import java.util.LinkedList;
public class XiaoXiaoLe {
public static void main(String[] args) {
// String[] arr = {"red","red","yellow","yellow","green","green","green","green","yellow","blue"};
String[] arr = {"red","red","red"};
LinkedList<String> stack = new LinkedList<String>();
for(int i = 0; i < arr.length; i ++) {
String cur = arr[i];
String last = i < arr.length - 1 ? arr[i + 1] : "";
if(stack.isEmpty() || !stack.peekLast().equals(cur) || cur.equals(last)) {
stack.add(cur);
} else {
String t1 = !stack.isEmpty() ? stack.peekLast() : "";
String t2 = stack.size() > 1 ? stack.get(stack.size() - 2) : "";
if(cur.equals(t1) && cur.equals(t2)) {
while(!stack.isEmpty() && stack.peekLast().equals(cur)) {
stack.pollLast();
}
} else {
stack.add(cur);
}
}
}
if(stack.size()==0)
System.out.println("所有顏色均被消除!");
else {
for(String color : stack)
System.out.println(color);
}
}
}
相關文章
- 矩陣消除遊戲矩陣遊戲
- 演算法面試題演算法面試題
- Linux運維工程師面試題之一Linux運維工程師面試題
- LeetCode 消除遊戲LeetCode遊戲
- Linux系統運維面試題,Linux運維經典面試題講解Linux運維面試題
- php演算法面試題PHP演算法面試題
- 演算法面試題(二)演算法面試題
- 面試演算法題6面試演算法
- 面試演算法題4面試演算法
- 面試演算法題1面試演算法
- 面試題庫(長期維護)面試題
- 40道 Redis 運維面試題Redis運維面試題
- 正負消除問題
- 一道有意思的面試演算法題面試演算法
- 面試演算法題記錄面試演算法
- 面試題目:手寫一個LRU演算法實現面試題演算法
- 演算法面試:陣列編碼面試問題演算法面試陣列
- 如何設計好玩的消除遊戲遊戲
- 經典演算法面試題(二)演算法面試題
- iOS-邏輯思維面試題01iOS面試題
- java面試一日一題:java中垃圾回收演算法有哪些Java面試演算法
- 用程式消除一道概率題的二義性
- 前端面試的一道演算法題(使用canvas解答)前端面試演算法Canvas
- 一道java面試題,演算法,求大家幫忙解答!Java面試題演算法
- 演算法刷題之三一維列表演算法
- Java面試題(一)Java面試題
- 面試題系列一面試題
- google經典演算法面試題-雞蛋問題Go演算法面試題
- Java演算法面試題(009) 毒酒問題Java演算法面試題
- 面試題總結-演算法部分面試題演算法
- 前端面試遇到的演算法題前端面試演算法
- 初級運維必備掌握面試題目運維面試題
- 面試題——二維陣列中的查詢面試題陣列
- Java演算法面試題(006) 相遇問題(阿里)Java演算法面試題阿里
- 天美遊戲人覆盤《天天愛消除》關卡設計:消除遊戲如何打造無壓力體驗?遊戲
- 面試每日一題016:MMORPG遊戲的核心體驗有什麼維度?如何優化?(系統向)面試每日一題遊戲優化
- 消除遊戲還能再戰十年!遊戲
- 面試題隨記一面試題