平衡大寫
哦,不!這些句子不合適平衡?! 平衡它們。給一個(gè)有單詞的句子,平衡每個(gè)單詞,用大寫字母在右手邊表示,用大寫字母在左手邊表示。另一種是,定義為如下:A集
解答動(dòng)態(tài)
eYg6#rN4Lho→XK/THgt;2`lt;;fDAm0SR
eYg6#RN4LhOFoo_bar→FoO_bar (quot;不應(yīng)包含在輸出中)
這是codegolf,因此嘗試實(shí)現(xiàn)最少字節(jié)數(shù)
Jelly,18字節(jié)數(shù) =s?g?@uti?u=?u?T?? 采用字符串參數(shù)并打印結(jié)果的完整程序。
在線嘗試!怎么做? =?s?g?@?u=?u?T?-主鏈接:字符列表?s-交換大小寫(僅影響字母字符)=-(s)等于(that);向量?g-相等元素的組運(yùn)行?@-(s)類似(that)-quot;(任何單個(gè)非字母字符現(xiàn)在都是一個(gè)單詞)μ)-對(duì)于每個(gè)(該單詞中的單詞):
-稀疏應(yīng)用程序。。。?-…到索引:最后四個(gè)鏈接作為單子:?u-大寫(單詞)=-(單詞)等于(that);向量?-反轉(zhuǎn)T-真實(shí)索引?u-…操作:大寫(索引處的字符)-隱式,粉碎打。ㄖ淮蛴×斜碇械淖址 對(duì)我來說似乎有點(diǎn)長(zhǎng):
分區(qū)原子(??、??、?P和?P)在這里似乎沒有多大幫助,盡管看起來它們應(yīng)該。也許吧有一種方法可以通過壓縮(";)一個(gè)二進(jìn)函數(shù)來縮短代碼,每個(gè)二進(jìn)函數(shù)的反方向是(U)?JavaScript語(yǔ)言(節(jié)點(diǎn).js),76 72 bytes 由于@tsh
s=gt;Buffer(w).map((c,i,a)=amp;=a[w.length+~i]95)) 在線試用!
Commented s=gt;//對(duì)于每個(gè)單詞w:Buffer(w)//將其轉(zhuǎn)換為Buffer.map((c,i,a)=amp;=//c的按位與:a[w.length+~i]//從單詞95//或0b1011111///(除小寫位以外的所有字母位)結(jié)尾獲取的對(duì)應(yīng)字符//映射()//將緩沖區(qū)隱式強(qiáng)制為字符串)//replace()的結(jié)尾
Perl 5-p,60 bytes s
\pL+
$i=0;join“”,map$F[--$i]=~/[a-Z]/?uc:$\F,@F=$&;=~//g
ge 在線試用!
Ruby,73 72字節(jié) ->;s{s.gsub(/[A-Z]+/i){
A
r=0;w='';A.bytes{
b
wgt;?Z?b: b&;95)};w}} 在線試用!
視網(wǎng)膜0.8.2,62字節(jié) t`l`l`.(?=([A-Za-z])*)(?gt;(?gt;)【A-Z】(?lt;=(?=)(?gt;(?gt;)*) 。。。匹配相同數(shù)量的字符,…
[A-Z] 。。。后跟一個(gè)大寫字母。
T`l`l` 大寫匹配字母。
Stax,19 16 bytes ?;√∩b?Aμ╗∞q?J,╕* 運(yùn)行并調(diào)試it
使用規(guī)則集替換[A-Za-z]+的每個(gè)匹配項(xiàng)。
-3,借用Jonathan Allan的答案中的不真實(shí)想法。
Explanation V^{c{96amp;}R stringV^regex的隱式輸入:quot;{c{96amp;}R用以下regex替換每個(gè)匹配項(xiàng):c復(fù)制匹配的{96amp;大寫匹配那些索引外殼,16 13字節(jié)1??zo?援助?在線試試吧!
?o√#首先?根據(jù)元素是否為字母?#將輸入分組到子列表(單詞)中,現(xiàn)在映射到單詞列表中,并使用函數(shù)Sz將結(jié)果連接到字符串中? #使用μ)2參數(shù)lambda函數(shù)將每個(gè)單詞及其反面壓縮在一起:?D?#如果arg 1是大寫a2#返回arg 2的大寫I#否則返回arg 2不變C(gcc),126 bytes f(s,b,e)char*s,*b,*e;{for(b=s;!isalpha(*b);++b);for(e=b;isalpha(*++e););for(s=e;bamp;*b&;32
(*bamp;=95);*slt;e;//循環(huán),直到指向//開頭的指針沒有在//指向末尾的指針之前++b)*--e//將b和e向中間移動(dòng)++b)//將b向前移動(dòng)到//每個(gè)循環(huán)的末尾*--e//將e向前移動(dòng)在//每個(gè)循環(huán)的開頭向后*--eamp;32
//如果兩個(gè)字符都不是(//都是小寫,那么*bamp;=95//和第二個(gè)字符大寫//case無關(guān)大小寫)*s&;//如果我們不在s的末尾f(s);//進(jìn)入下一個(gè)單詞}
Julia,76 bytes n-quot;[a-zA-Z]+gt;x-gt;c-32(x[L-=1]lt;c),x))) 聯(lián)機(jī)試用!
05AB1E,15 14字節(jié) -1感謝Makonede!(復(fù)制TOS,然后反向TOS有一個(gè)內(nèi)置的單字節(jié),
.γa}ε- End
免責(zé)聲明:
本頁(yè)內(nèi)容僅代表作者本人意見,若因此產(chǎn)生任何糾紛由作者本人負(fù)責(zé),概與琴島網(wǎng)公司無關(guān)。本頁(yè)內(nèi)容僅供參考,請(qǐng)您根據(jù)自身實(shí)際情況謹(jǐn)慎操作。尤其涉及您或第三方利益等事項(xiàng),請(qǐng)咨詢專業(yè)人士處理。