पर्ल और पीसीआरई रेगेक्स, 280 बाइट्स
^(?=(.*z){2})(?=(.*\(){43})(?=(.*\)){43})(?=(.*\*){22})(?=(.*\.){23})(?=(.*0){2})(?=(.*1){6})(?=(.*2){16})(?=(.*3){7})(?=(.*4){4})(?=(.*5){1})(?=(.*6){3})(?=(.*7){2})(?=(.*8){2})(?=(.*9){1})(?=(.*=){22})(?=(.*\?){22})(?=(.*\\){11})(?=(.*\^){2})(?=(.*\{){23})(?=(.*\}){23}).{280}\z
(थोड़ा) अधिक पठनीय:
^
(?=(.*z){2})
(?=(.*\(){43})
(?=(.*\)){43})
(?=(.*\*){22})
(?=(.*\.){23})
(?=(.*0){2})
(?=(.*1){6})
(?=(.*2){16})
(?=(.*3){7})
(?=(.*4){4})
(?=(.*5){1})
(?=(.*6){3})
(?=(.*7){2})
(?=(.*8){2})
(?=(.*9){1})
(?=(.*=){22})
(?=(.*\?){22})
(?=(.*\\){11})
(?=(.*\^){2})
(?=(.*\{){23})
(?=(.*\}){23})
.{280}\z
लिखित रूप में यह O (2 ^ n) समय में चलता है, इसलिए अविश्वसनीय रूप से अक्षम है। इसका परीक्षण करने का सबसे आसान तरीका हर घटना को बदलना है.*
किया जाए .*?
, जो उस मामले का कारण बनता है जहां यह पहले जाँच की जाती है (जिसका अर्थ है कि यह रैखिक समय में मेल खाता है, लेकिन फिर भी अगर मिलान करने में विफल रहता है तो यह घातीय समय लेता है)।
मूल विचार यह है कि हम regex की लंबाई को बराबर 280 तक लागू करते हैं, और reahx में प्रत्येक वर्ण को कम से कम एक निश्चित संख्या में प्रकट होने के लिए बाध्य करने के लिए लुकहेड अभिकथन का उपयोग करते हैं, जैसे कि (?=(.*z){2})
बलz
वर्ण को कम से कम दो बार प्रदर्शित करने के । 2+43+43+22+23+2+6+16+7+4+1+3+2+2+1+22+22+11+2+23+23
280 है, इसलिए हमारे पास किसी भी वर्ण की "अतिरिक्त" घटनाएं नहीं हो सकती हैं।
यह एक प्रोग्रामिंग उदाहरण है ऑटोग्राम , एक वाक्य जो इसमें शामिल प्रत्येक वर्ण की संख्या को सूचीबद्ध करके खुद का वर्णन करता है (और, इस मामले में, कुल लंबाई भी)। मैं इसे बनाने में काफी भाग्यशाली रहा (आम तौर पर आपको जानवर बल का उपयोग करना पड़ता है, लेकिन मैं पूरी तरह से लिखने से पहले अपने समाधान के बल पर अपने जानवर बल कार्यक्रम का परीक्षण करते समय इस समाधान में ठोकर खाई)।
मार्टिन एंडर के सहयोग से पर्ल और पीसीआरई रेगेक्स, 253 बाइट्स
मैंने अनुमान लगाया कि कुछ समाधान हो सकते हैं जो कुछ अंकों (सबसे अधिक संभावना 9, 8, या 7) को छोड़ते हैं। मार्टिन एंडर को एक मिला, जो नीचे दिखाया गया है:
^(?=(.*z){2})(?=(.*\(){39})(?=(.*\)){39})(?=(.*\*){20})(?=(.*\.){21})(?=(.*0){4})(?=(.*1){6})(?=(.*2){11})(?=(.*3){6})(?=(.*4){3})(?=(.*5){2})(?=(.*6){3})(?=(.*9){4})(?=(.*=){20})(?=(.*\?){20})(?=(.*\\){9})(?=(.*\^){2})(?=(.*{){21})(?=(.*}){21}).{253}\z
पठनीय संस्करण:
^
(? = (। * जेड) {2})
(? = (। * \ () {39})
(? = (। * \)) {39})
(? = (। * \ *) {20})
(? = (। * \।) {21})
(? = (। * 0) {4})
(? = (। * 1) {6})
(? = (। * 2) {11})
(? = (। * 3) {6})
(? = (। * 4) {3})
(? = (। * 5) {2})
(? = (। * 6) {3})
(? = (। * 9) {4})
(? = (। * =) {20})
(? = (। * \?) {20})
(? = (। * \\) {9})
(? = (। * \ ^) {2})
(? = (। * {) {21})
(? = (। *}) {21})
। {253} \ z