293/294 Flip Game I and II -- back tracking ing
生活随笔
收集整理的這篇文章主要介紹了
293/294 Flip Game I and II -- back tracking ing
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
293. 一個input 只有 + 或者-, 每次只能把 “連續(xù)2個”+ 變成- 號,下一輪換另一個人做同樣操作,如果不存在連續(xù)的+,則這個人就失敗了。
Input: s = "++++" Output: ["--++","+--+","++--" ]
給你一個初始化的字符串,問你下一次可能的結(jié)果。
算法: 簡單的字符串處理,只要找到連續(xù)兩個+ 就變成- 然后存入結(jié)果中。code如下:需要注意的就是 首和尾是否存在字符串了。 用i-1>0 以及 i+1 < length 來判斷首尾。 public List<String> generatePossibleNextMoves(String s) {List<String> result = new ArrayList<>();if(s.length()<2) return result;for(int i=1; i<s.length(); i++){if(s.charAt(i) == '+' && s.charAt(i-1) == '+'){String str = (i-1 > 0? s.substring(0,i-1): "") + "--"+ ( i+1< s.length() ? s.substring(i+1,s.length()): "");result.add(str); }}return result;}
Input: s = "++++" Output: ["--++","+--+","++--" ]
給你一個初始化的字符串,問你下一次可能的結(jié)果。
算法: 簡單的字符串處理,只要找到連續(xù)兩個+ 就變成- 然后存入結(jié)果中。code如下:需要注意的就是 首和尾是否存在字符串了。 用i-1>0 以及 i+1 < length 來判斷首尾。 public List<String> generatePossibleNextMoves(String s) {List<String> result = new ArrayList<>();if(s.length()<2) return result;for(int i=1; i<s.length(); i++){if(s.charAt(i) == '+' && s.charAt(i-1) == '+'){String str = (i-1 > 0? s.substring(0,i-1): "") + "--"+ ( i+1< s.length() ? s.substring(i+1,s.length()): "");result.add(str); }}return result;}
?
294. 在293基礎(chǔ)上問你 starting player 是否一定能贏。
分析: 兩個player 成為 play0 和 play1,? 存在一條路徑,讓 play0 做出某個選擇, play1 無論如何選擇 最終都能導(dǎo)致 play1 fail 掉。
?
轉(zhuǎn)載于:https://www.cnblogs.com/keepAC/p/9967195.html
總結(jié)
以上是生活随笔為你收集整理的293/294 Flip Game I and II -- back tracking ing的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: keras入门(三)搭建CNN模型破解网
- 下一篇: ios自定义日期、时间、城市选择器