Annettuna on bittijono, jossa on merkkiä. Joka askeleella saat poistaa kaksi vierekkäistä bittiä, jotka ovat samat. Monellako tavalla voit poistaa kaikki bitit?
Esimerkiksi kun bittijono on , mahdollisia tapoja on :
- (tyhjä)
- (tyhjä)
- (tyhjä)
- (tyhjä)
- (tyhjä)
Voit olettaa, että .
Python
Toteuta tiedostoon biterase.py
funktio count
, joka kertoo, monellako tapaa voit poistaa kaikki bitit.
def count(s): # TODO if __name__ == "__main__": print(count("1100")) # 2 print(count("1001")) # 1 print(count("100111")) # 5 print(count("11001")) # 0 print(count("1100110011100111")) # 113925
Java
Toteuta tiedostoon BitErase.java
metodi count
, joka kertoo, monellako tapaa voit poistaa kaikki bitit.
public class BitErase { public long count(String s) { // TODO } public static void main(String[] args) { BitErase b = new BitErase(); System.out.println(b.count("1100")); // 2 System.out.println(b.count("1001")); // 1 System.out.println(b.count("100111")); // 5 System.out.println(b.count("11001")); // 0 System.out.println(b.count("1100110011100111")); // 113925 } }