筆試算法模擬題精解之“變化的字符”
【在線編程產品介紹】 阿里雲開發者社區在線編程: 免費刷題大神器,助你拿到好offer 周賽月賽不停歇,做題還能領獎品 大賽筆試全真題,常做常新有驚喜 點擊鏈接開始產品體驗:https://developer.aliyun.com/coding 本文為大家介紹的是“109.變化的字符”的解法探究。先來看一下題目內容: 題目詳情 查看題目:109.變化的字符 Tom又碰到了一道字符串的題目。 有一個字符串s(1<=|s|<=3e5,|s|為奇數),這個字符串只包含0,1和字符’.’,這個’.’字符可以任意變為0或者1。 現在可以通過一些操作來縮短這個字符串,每次操作可以任意選擇連續的三個字符,然後將這個連續的三個字符變成出現數量最多的那個字符(比如001變為0,101變為1,1.0可以變為0也可以變為1)。 通過更改字符’.’,問通過(|s|-1)/2次操作後最終這個字符串只剩下一個1的方案有多少種,答案對1e9+7取模。 輸入一行字符串s 輸出一個數表示方案數。示例1輸入:”1.0.1″輸出:4 解題方法: 操作次數為,1.0.1長度為5就是可以操作2次。 分別可以把字符串變為10001 10011 11001 […]