【面試演算法題】一維消除遊戲
題目說明
三個或者三個以上顏色相同就刪除
比如:紅紅黃黃綠綠綠綠黃藍 消除完了之後是 紅紅藍
實現程式碼
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);
}
}
}
相關文章
- 演算法面試題:一演算法面試題
- LeetCode 消除遊戲LeetCode遊戲
- 矩陣消除遊戲矩陣遊戲
- Linux運維工程師面試題之一Linux運維工程師面試題
- 演算法面試題演算法面試題
- Linux系統運維面試題,Linux運維經典面試題講解Linux運維面試題
- 演算法面試題(二)演算法面試題
- php演算法面試題PHP演算法面試題
- 面試每日一題016:MMORPG遊戲的核心體驗有什麼維度?如何優化?(系統向)面試每日一題遊戲優化
- 面試題庫(長期維護)面試題
- 40道 Redis 運維面試題Redis運維面試題
- 演算法面試:陣列編碼面試問題演算法面試陣列
- 面試演算法題記錄面試演算法
- 如何設計好玩的消除遊戲遊戲
- 一道有意思的面試演算法題面試演算法
- python面試題(一)Python面試題
- Java面試題(一)Java面試題
- 面試每日一題003:基本的遊戲戰鬥公式有哪些?(系統向)面試每日一題遊戲公式
- 一次網易遊戲測試工程師(外包)的面試遊戲工程師面試
- 氣球遊戲騰訊面試題滑動視窗解法遊戲面試題
- 記一次面試試題(一)面試
- 面試題目:手寫一個LRU演算法實現面試題演算法
- 騰訊面試官親授:三個遊戲策劃思維訓練面試遊戲
- 面試每日一題008:什麼是遊戲文案?包含什麼內容?(文案向)面試每日一題遊戲
- 2021面試運維13k薪資面試題目有答案運維面試題
- 一個Promise面試題Promise面試題
- 2018.5 一週面試題面試題
- 面試題隨記一面試題
- 面試題總結-演算法部分面試題演算法
- 天美遊戲人覆盤《天天愛消除》關卡設計:消除遊戲如何打造無壓力體驗?遊戲
- java面試一日一題:java中垃圾回收演算法有哪些Java面試演算法
- 面試每日一題005:常見的遊戲經濟系統有哪些?(系統向)面試每日一題遊戲
- 一家外企的面試題目(C/C++面試題,C語言面試題)面試題C++C語言
- Supercell的“消除+RPG”新遊戲有些意思,可是……遊戲
- 消除遊戲還能再戰十年!遊戲
- 初級運維必備掌握面試題目運維面試題
- 演算法面試(一) 連結串列演算法面試
- 網際網路 Java 工程師面試題(Spring 面試題一)Java工程師面試題Spring