国王的魔镜
?國(guó)王的魔鏡?(Standard IO)
時(shí)間限制:?1000 ms??空間限制:?262144 KB??具體限制??
題目描述
國(guó)王有一個(gè)魔鏡,可以把任何接觸鏡面的東西變成原來(lái)的兩倍——只是,因?yàn)槭晴R子嘛,增加的那部分是反的。
比如一條項(xiàng)鏈,我們用AB來(lái)表示,不同的字母表示不同顏色的珍珠。如果把B端接觸鏡面的話,魔鏡會(huì)把這條項(xiàng)鏈變?yōu)锳BBA。如果再用一端接觸的話,則會(huì)變成ABBAABBA(假定國(guó)王只用項(xiàng)鏈的某一端接觸魔鏡)。
給定最終的項(xiàng)鏈,請(qǐng)編寫程序輸出國(guó)王沒(méi)使用魔鏡之前,最初的項(xiàng)鏈可能的最小長(zhǎng)度。
輸入
只有一個(gè)字符串,由大寫英文字母組成,表示最終的項(xiàng)鏈(長(zhǎng)度<=255)。
輸出
只有一個(gè)整數(shù),表示國(guó)王沒(méi)使用魔鏡前,最初的項(xiàng)鏈可能的最小長(zhǎng)度。
樣例輸入
ABBAABBA?樣例輸出
2主題思路
1.這道題其實(shí)是考一個(gè)回文字符的題目
2.字母?jìng)€(gè)數(shù)是復(fù)數(shù)且是回文字符就減半
3.字母減半時(shí)遇到單數(shù)就停,不然會(huì)錯(cuò)
證明思路過(guò)程:】
樣例1:
ABBAABBA [雙數(shù) and 回文(減半)] (長(zhǎng)度:8/2=4);
ABBA [雙數(shù) and 回文(減半)] (長(zhǎng)度:4/2=2);
AB [雙數(shù) but 不回文(停,輸出)] cout<<2 // printf("%d",a)[a=2];
樣例2:
AAAAAAAAAAA [回文 but 不是雙數(shù)(停,輸出)] cout<<11 // printf("%d",a)[a=11];
樣例3:
ABXDCCDXBAABXDCCDXBA [雙數(shù) and 回文(減半)] (長(zhǎng)度:20/2=10);
ABXDCCDXBA [雙數(shù) and 回文(減半)] (長(zhǎng)度:10/2=5);
ABXDC [不回文 and 不是雙數(shù)(停,輸出)] cout<<5 // printf("%d",a)[a==5]
核心代碼:
for(int i=0;i<len;i++){b[j]=a[i];j--;}for(int i=0;i<len;i++){if(a[i]!=b[i]) bz=false;}總結(jié)
- 上一篇: 芯片制造和芯片技术研发同时突破,中国芯片
- 下一篇: 共享单车的电子围栏——基于RTK技术的高