স্ট্রিংটি সম্পূর্ণ একই স্ট্রিংয়ের তৈরি কিনা তা পরীক্ষা করুন


24

এটি এই প্রশ্ন থেকে নেওয়া হয়েছে (কোর্সের অনুমতি সহ)। আমি উদ্ধৃতি দেব:

একটি ফাংশন তৈরি করুন যা একটি স্ট্রিং নেয় এবং এটি ইনপুটটিতে কেবল একটি পুনরাবৃত্ত অক্ষরের ক্রম থাকে কিনা তার উপর ভিত্তি করে সত্য বা মিথ্যা ফিরে পাওয়া উচিত । প্রদত্ত স্ট্রিংয়ের দৈর্ঘ্য সর্বদা 1 এর চেয়ে বেশি এবং চরিত্রের ক্রমটিতে কমপক্ষে একটি পুনরাবৃত্তি থাকতে হবে।

কিছু উদাহরণ:

'aa' //true
'aaa' //true
'abcabcabc' //true
'aba' //false
'ababa' //false
'weqweqweqweqweqw' // false

বিশেষত, পুনরাবৃত্তি সাবস্ট্রিংগুলি ( আপডেট ) দিয়ে কঠোরভাবে গঠিত একটি স্ট্রিংয়ের জন্য চেকটি কোনও সত্য বা মিথ্যা উপস্থাপনা আউটপুট করতে পারে, তবে কোনও ত্রুটি আউটপুট দয়া করে দয়া করে। কঠোরভাবে বর্ণানুক্রমিক স্ট্রিং। অন্যথায় স্ট্যান্ডার্ড কোড গল্ফ নিয়ম। এটি কোড গল্ফ, তাই প্রতিটি ভাষার জয়ের জন্য বাইটের মধ্যে সংক্ষিপ্ত উত্তর।


4
এইচএম, আমি এই চ্যালেঞ্জটি বন্ধ করে যাচ্ছিলাম সেই একটির দ্বিগুণ হিসাবে , তবে আমি লক্ষ্য করেছি যে অন্য একটি চরিত্রের গুনে স্কোর করেছে। এর পরিবর্তে এটির পরিবর্তে আমাদের অন্যটি বন্ধ করে দেওয়া উচিত (এটির একটি স্বীকৃত উত্তরও রয়েছে) পরিবর্তে এটির পরিবর্তে upe
এরিক আউটগল্ফার

উত্তর:


11

ব্র্যাচল্যাগ , 4 3 বাইট

ġ=Ṁ

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

ġ=Ṁ    Implicit input, say "abcabc"
ġ      Split into chunks of equal lengths (except maybe the last one): ["abc","abc"]
 =     Apply the constraint that all of the chunks are equal,
  Ṁ    and that there are multiple of them.

true.সীমাবদ্ধতাগুলি সন্তুষ্ট করা যায় এবং false.যদি না হয় তবে প্রোগ্রামটি মুদ্রণ করে ।


এক ঘন্টা আগে আপনি এটি পোস্ট করার আগে আমি ঠিক এমন কিছু পাওয়ার ~j↙বা =Ṁcকাজ করার চেষ্টা করার মধ্য দিয়ে লড়াই করে যাচ্ছিলাম
সম্পর্কযুক্ত স্ট্রিং

4
ওহ, হ্যাঁ, এটি এক বাইট ছোট হতে পারে:ġ=Ṁ
সম্পর্কহীন স্ট্রিং

( দুই বা ততোধিক উপাদানগুলির তালিকা হতে পারে একটি পরিবর্তনশীল)
আনলিটেড স্ট্রিং

1
@ আনরলেটেড স্ট্রিং গ্রেট, ধন্যবাদ! আমি ভেরিয়েবলের উইকি পৃষ্ঠাটি পরীক্ষা করার জন্য ভাবি নি।
জাগারব

1
অনেক দুর্দান্ত উত্তর, এবং LUA উত্তর আমার হৃদয়ে একটি বিশেষ জায়গা আছে। অরনল্ডের উত্তরটি বিশেষত মিষ্টি যেহেতু আমি যে মূল প্রশ্নটির উপর ভিত্তি করেছিলাম (ডুপ নয়) আসলে জাভাস্ক্রিপ্টকে ট্যাগ করা হয়েছে। প্রধানত এটি নির্বাচন করা কারণ এটি সমস্ত ভাষার জন্য সামগ্রিকভাবে সংক্ষিপ্ততম বলে মনে হয় এবং এটি আমার প্রথম প্রশ্ন হিসাবে আমি একটি ব্যাজ পেয়েছি।
ওফ্লাক

19

জাভাস্ক্রিপ্ট (ES6), 22 বাইট

একটি বুলিয়ান মান প্রদান করে।

s=>/^(.*)\1+$/.test(s)

এটি অনলাইন চেষ্টা করুন!


নিয়মিত প্রকাশ ছাড়াই,  33  29 বাইট

হয় হয় null(মিথ্যা) বা একটি বস্তু (সত্য)।

s=>(s+s).slice(1,-1).match(s)

এটি অনলাইন চেষ্টা করুন!

এনবি: প্রযুক্তিগতভাবে, s ম্যাচের জন্য নিয়মিত অভিব্যক্তিতে রূপান্তরিত হয় () , সুতরাং উপরের শিরোনামটি মিথ্যা।


9

গ্রেপ, 19

grep -qxE '(.+)\1+'

পরীক্ষা

while read; do 
  <<<"$REPLY" grep -qxE '(.+)\1+' && t="true" || t="false"
  echo "$REPLY: $t"
done < infile 

আউটপুট:

aa: true
aaa: true
abcabcabc: true
aba: false
ababa: false
weqweqweqweqweqw: false

9

জাপট , 6 বাইট

²é ¤øU

@ শেগি-কে একটি বাইট সংরক্ষণ করা হয়েছে

এটি অনলাইন চেষ্টা করুন!

        Implicit input, stored in variable 'U'
²       U+U, "abcabc" -> "abcabcabcabc"
 é      Rotate 1 char to the right "abcabcabcabc" -> "cabcabcabcab"
   ¤    Remove first two chars, "cabcabcabcab" -> "bcabcabcab"
    øU  Check if U is in the above

চমৎকার একটি :) আপনি বাইট সংরক্ষণ করতে এর p<space>সাথে প্রতিস্থাপন করতে পারেন ²
শেগি

9

জাভা, 25 24 বাইট

অলিভিয়ার গ্রাগোয়ারকে -1 বাইট ধন্যবাদ!
বিরক্তিকর রেইগেক্স উত্তর

s->s.matches("(.+)\\1+")

এটি অনলাইন চেষ্টা করুন! আমি এখন বেঁধে

থাকা অজগর উত্তরটির চেয়ে মাত্র 1 বাইট বেশি লম্বা :)


3
আপনি ফাইনালটি সরিয়ে ফেলতে পারেন $কারণ matchesপদ্ধতিটি হুবহু মিল, ডিফল্টরূপে একটি স্ট্রিং ম্যাচ নয়।
অলিভিয়ের গ্রাগোয়ার

আমি ভুলে গেছি matchesরেজেক্সে এর নিজস্ব যোগ করে $। ধন্যবাদ!
বেনিয়ামিন আরউখার্ট

7

এক্সেল, 26 বাইট

=FIND(A1,A1&A1,2)<=LEN(A1)

এ 1 থেকে ইনপুট, আপনি এই সূত্রটি যে কোনও কক্ষে রেখেছেন তার আউটপুট।


আপনি যদি একটি একা-বর্ণের রেঞ্জের নাম (উদাহরণস্বরূপ A) সংজ্ঞায়িত করেন এবং এটি আপনার ইনপুট হিসাবে সেট করেন তবে আপনি 4 বাইট সংরক্ষণ করতে পারেন ।
i_saw_drones

@ i_saw_drones - আমি মনে করি মান I / O বিধি দ্বারা এটি অনুমোদিত নয়: এখানে মেটা উত্তরের একটি লিঙ্ক রয়েছে যা সেই পদ্ধতিতে প্রযোজ্য হবে; এটি বর্তমানে -36 ভোটে।
সোফিয়া ল্যাটারার

ক্ষমাপ্রার্থী আমি সেই পোস্টটি দেখিনি, যদিও এটি সম্পর্কে চিন্তা করা, এটি A1কোনও "পরিবর্তনশীল" নয় কারণ এতে ইনপুট মান রয়েছে? :)
i_saw_drones

1
আমি সেভাবে অনুভব করব যদি আমি এ 1 এর সাথে সুনির্দিষ্টভাবে এ 1 তৈরির সাথে কিছু বিশেষ করে থাকি, যেমন আমি যদি এর আর (র) এর 1 টির উপর কোনওভাবে নির্ভর করে থাকি তবে, যদিও এটি একটি এক্সেল ফাংশন সরবরাহের সবচেয়ে প্রাকৃতিক উপায় with একটি নির্বিচার ইনপুট
সোফিয়া ল্যাটারের

7

আর , 28 বাইট

grepl("(.+)\\1+$",scan(,''))

এটি অনলাইন চেষ্টা করুন!

সরল রেইগেক্স সংস্করণ। আর (কখনও কখনও) পাইথনের সাথে খুব মিল, তাই এটি টিফিল্ডের পাইথন 2 রেজেক্স উত্তরটির সাথে মিল রয়েছে, তবে সংক্ষিপ্ত!

প্রশ্ন (উত্তর যদি কেউ জানে)

আমি এখনও বিভ্রান্ত হয়ে পড়েছি কেন এটি কাজ করে, কারণ স্ট্রিংগুলি যে কোনও দৈর্ঘ্য হতে পারে এবং সর্বদা কাজ করবে এবং এখনও কাজ করে যখন আমি "ক্যাবাবাবাব" এর মতো একটি বৈধ স্ট্রিংয়ের সামনে একটি চিঠি যুক্ত করি। আমি যদি ব্যক্তিগতভাবে রেজেক্সটি পড়ি তবে আমি দেখতে পাচ্ছি (.+), যা কোনও দৈর্ঘ্যের কোনও গ্রুপকে ধারণ করে। এবং তারপর\\1+$ যা বন্দী গোষ্ঠীটি শেষ অবধি কয়েকবার পুনরাবৃত্তি করে।

সুতরাং কেন এটি কেবল "এবি" ক্যাপচার করে না এবং স্ট্রিংয়ের সমাপ্তি অবধি এটি পুনরাবৃত্তি হয় তা খুঁজে পাওয়া যায় না, বিশেষত যেহেতু স্ট্রিংগুলি শুরু করতে পারে সে সম্পর্কে কোনও বিধিনিষেধ নির্দিষ্ট করা হয়নি?


1
আকর্ষণীয়, এটি আর এর রেজেক্স ইঞ্জিনের একটি বাগ বলে মনে হচ্ছে। বিকল্পটি যুক্ত করা এটি আপনার perl=TRUEকাবাবের সাথে মিলিয়ে তোলে। চলমান grep -E '(.*)\1+$'ব্যাশ এছাড়াও cABABAB সাথে মিলে যায়, যদিও grep -Eব্যবহারসমূহ ere, একই Regex গন্ধ আর সমর্থন করার জন্য অনুমিত হয়।
গ্রিমি

2
আমার অনুমান যে এটি একটি ভুলভাবে প্রয়োগ করা অপ্টিমাইজেশন। .+কোনও প্যাটার্নের শুরুতে পরিবর্তনটি ^.+একটি গুরুত্বপূর্ণ অপটিমাইজেশন, তবে যদি .+প্যারেনগুলি ক্যাপচারের অভ্যন্তরে থাকে তবে এটি বৈধ হওয়া বন্ধ করে দেয়।
গ্রিমি


6

জেলি ,  5  4 বাইট

আমি এখন দেখতে পাচ্ছি যে সর্বোত্তম উপায়টি হল xnor এর পদ্ধতি অনুসরণ করা !

Ḋ;Ṗw

একটি মোনাডিক লিঙ্ক যা অক্ষরের একটি তালিকা গ্রহণ করে এবং একটি পূর্ণসংখ্যা আউটপুট করে - কোনও অস্তিত্ব না থাকলে পুনরাবৃত্তি করা স্লাইসের সংক্ষিপ্ততম দৈর্ঘ্য বা শূন্য। মনে রাখবেন যে শূন্যটি মিথ্যা এবং জেলিতে শূন্য সংখ্যাগুলি সত্য।

এটি অনলাইন চেষ্টা করুন!

কিভাবে?

Ḋ;Ṗw - Link: list of characters, S   e.g. "abcabcabc"   or "abababa"
Ḋ    - dequeue S                           "bcabcabc"       "bababa"
  Ṗ  - pop from S                         "abcabcab"       "ababab"
 ;   - concatenate                "bcabcabcabcabcab"       "bababaababab"
   w - first index of sublist     3  ^---here!             0  (not found)


4

পাইথন 2 , 24 বাইট

lambda s:s in(s*2)[1:-1]

এটি অনলাইন চেষ্টা করুন!

মূল প্রশ্নের জবাবের উত্তর থেকে নির্লজ্জভাবে চুরি করা ।


আরও স্বজ্ঞাত সংস্করণ:

পাইথন 2 , 59 55 53 বাইট

lambda s:s in[len(s)/i*s[:i]for i in range(1,len(s))]

এটি অনলাইন চেষ্টা করুন!


বোরিং রেজেক্স ভার্সন:

পাইথন 2 , 44 বাইট

lambda s:re.match(r'(.+)\1+$',s)>0
import re

এটি অনলাইন চেষ্টা করুন!




3

জে , 26 25 15 14 বাইট

এক্সনোর পদ্ধতি ব্যবহার করে

+./@E.}:@}.@,~

এটি অনলাইন চেষ্টা করুন!

আসল (দুটি ভিন্ন পন্থা)

জে , 25 বাইট

1<1#.(#%#\)=<\+/@E.&:>"{]

এটি অনলাইন চেষ্টা করুন!

জে , 26 বাইট

1<1#.-@#\([:(-:##{.)<\)"{]

এটি অনলাইন চেষ্টা করুন!


3

পাওয়ারশেল, 23 24 বাইট

নিয়মগুলি পুরোপুরি মেলানোর জন্য +1 বাইট

"$args"-match"^(.+)\1+$"

এটি অনলাইন চেষ্টা করুন!

বেশ বিরক্তিকর. অন্যান্য রেগেক্স উত্তরের উপর ভিত্তি করে। ভাগ্যক্রমে পাওয়ারশেল \একটি পালানোর চরিত্র হিসাবে ব্যবহার করে না !


এটির trueজন্য ফিরে আসেaabcabc
mazzy

1
@ মমজি ঠিক আছে!
গ্যাব্রিয়েল মিলস

3

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 70 বাইট

xnor এর নির্লজ্জ অভিযোজন ( 46 বাইট )

s=>(s+s).Substring(1,s.Length*2-2).Contains(s)

আমার নন রেজেক্স সমাধান:

s=>s.Select((x,y)=>y).Count(z=>s.Replace(s.Substring(0,z+1),"")=="")>1

ব্যাখ্যা:

খালি স্ট্রিংয়ের সাথে সূচক 0 এ শুরু হওয়া প্রতিটি সম্ভাব্য স্ট্রিং প্রতিস্থাপন করুন। ফলাফলটি যদি খালি স্ট্রিং হয় তবে স্ট্রিংটি সম্পূর্ণ সেই স্ট্রিংয়ের তৈরি। যেহেতু এটিতে নিজের সাথে পুরো স্ট্রিংটি মূল্যায়ন করা অন্তর্ভুক্ত তাই প্রত্যাশিত ফলাফলের পরিমাণ অবশ্যই 1 এর বেশি হওয়া উচিত।

উদাহরণ: abcabc

সূচক 0 এ শুরু হওয়া সম্ভাব্য সাবস্ট্রিংগুলি:

'a', 'ab', 'abc', 'abca', 'abcab', 'abcabc'

যদি আমরা তাদের খালি স্ট্রিংয়ের সাথে প্রতিস্থাপন করি

Substring          Result

'a'         =>     'bcbc'
'ab'        =>     'cc'
'abc'       =>     ''
'abca'      =>     'bc'
'abcab'     =>     'c'
'abcabc'    =>     ''

যেহেতু 'অ্যাবাক্যাবসি' ব্যতীত অন্য একটি স্ট্রিং রয়েছে যা খালি স্ট্রিংটি দেয়, স্ট্রিংটি সম্পূর্ণ অন্য স্ট্রিং ('এবিসি') দিয়ে তৈরি

এটি অনলাইন চেষ্টা করুন!


3

পাইথন 3 , 62 60 56 54 বাইট

আরবো থেকে -4 বাইট থেক্স

lambda s:s in(len(s)//l*s[:l]for l in range(1,len(s)))
  1. স্ট্রিংয়ের সমস্ত সম্ভাব্য উপসর্গের উপরে আইট্রেট করুন।
  2. উপসর্গটির বাইরে স্ট্রিংটি তৈরি করার চেষ্টা করুন।
  3. এটি আদৌ কোনও উপসর্গের সাথে সফল হয় কিনা তা ফিরিয়ে দিন।

এটি অনলাইন চেষ্টা করুন!


1
চমৎকার উত্তর! f=বাদ করা যেতে পারে; বেনাম ফাংশন সাধারণত অনুমোদিত হয়। এছাড়াও, পাইথন 2 এ গিয়ে anyকনস্ট্রাক্টের পরিবর্তে একটি তালিকার সদস্যতা পরীক্ষা করে আপনি 55 বাইটে
আরবো

1
থ্যাঙ্কস তালিকার সদস্যতার সাথে দুর্দান্ত ধর! আমি পাইথন 2-এ স্যুইচ করব না, কারণ এটি ভাষাটি স্যুইচ করার মতো, যা স্পষ্টতই এখানে বিন্দু নয়;) এছাড়াও, বাইট-কাউন্ট রেখে টিআইওতে কোনও বেনাম ফাংশন পরীক্ষা করার কোনও সুবিধাজনক উপায় আছে কি?
মোভাটিকা

1
@ মোভ্যাটিকা শিরোনামে, `f =` (y পাইথনের লাইন ধারাবাহিকতা চরিত্রটি) রাখুন
আর্টেমিস মনিকা

বিরক্তিকরভাবে, \ এছাড়াও একটি পালানোর চরিত্র। এখানে কোড বিন্যাস ছাড়াই আপনার যা শিরোনামে লাগানো উচিত তা হল: f = \
আর্টেমিস মনিকা

2

জাপট , 10 বাইট

সত্যবাদী হলে ধনাত্মক সংখ্যা এবং মিথ্যা হলে 0 প্রদান করে। আপনি যদি বুল আউটপুট চান তবে কেবল পতাকা যুক্ত করুন

å+ k@rXÃÊÉ

å+ k@rXÃÊÉ      Full program. Implicit input U.
                    e.g: U = "abcabcabc"
å+              Take all prefixes 
                         U = ["a","ab","abc","abca","abcab","abcabc","abcabca","abcabcab","abcabcabc"]
   k@           Filter U by:
     rXÃ        Values that return false (empty string)
                when replacing each prefix in U
                e.g: ["bcbcbc","ccc","","bcabc","cabc","abc","bc","c",""]
                                take ↑                             and ↑
                     U = ["abc","abcabcabc"]
         ÊÉ     Get U length and subtract 1. Then return the result

এটি অনলাইন চেষ্টা করুন!


2

কাস্তে , 6 বাইট

Ṡ€ȯhtD

এটি অনলাইন চেষ্টা করুন!

আমি মনে করি এটি অনুকূল থেকে একটি বাইট বেশি, তবে আমি এমন কোনও ব্যবস্থা খুঁজে পাইনি যা স্পষ্ট রচনাটি ȯঅপ্রয়োজনীয় করে তুলেছে ।

ব্যাখ্যা

Ṡ€      Find the argument in the result of applying the following function to the argument
  ȯhtD  Duplicate the argument, then remove the first and last elements.

2
€htD¹এড়ানো ȯ
জাগারব

এটা সত্যিই চমৎকার! আমি ভেবেছিলাম λ€htD¹কিন্তু আমি বুঝতে পারি নি যে ল্যাম্বডাস স্পষ্টভাবে যুক্ত করা হবে
সোফিয়া লেকনার

2

গাণিতিক 11.x, 74 বাইট

{}!=StringCases[#,StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="")]&

যেখানে, জুড়ে, #ইনপুট স্ট্রিংটি উপস্থাপন করে এবং

StringCases[#,<pattern>]

প্যাটার্নটির সাথে মিলে ইনপুট স্ট্রিংয়ের সাবস্ট্রিংগুলি সন্ধান করে

StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="") 

এই প্যাটার্নটির জন্য ম্যাচগুলির প্রয়োজন x, এটি অবশ্যই স্ট্রিংয়ের শুরুতে শুরু হওয়া উচিত এবং শর্তটি পূরণ করতে হবে যে (1) ম্যাচটি পুরো ইনপুট স্ট্রিং নয় এবং (2) যদি আমরা খালি স্ট্রিংয়ের সাথে ইনপুট স্ট্রিংয়ে ম্যাচের ঘটনাগুলি প্রতিস্থাপন করি আমরা খালি স্ট্রিং প্রাপ্ত। পরিশেষে, খালি তালিকার সাথে ম্যাচের তালিকার তুলনা করা,

{}!=

হয় Trueযদি ম্যাচের তালিকা nonempty এবং Falseম্যাচের তালিকা খালি পারেন।

পরীক্ষার কেস:

{}!=StringCases[#,StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="")]&["aa"]
(*  True  *)
{}!=StringCases[#,StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="")]&["aaa"]
(*  True  *)
{}!=StringCases[#,StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="")]&["abcabc"]
(*  True  *)

এবং

{}!=StringCases[#,StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="")]&["aba"]
(*  False  *)
{}!=StringCases[#,StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="")]&["ababa"]
(*  False  *)
{}!=StringCases[#,StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="")]&["weqweqweqweqweqw"]
(*  False  *)

2

পাইথন 3, 84 বাইট

import textwrap
lambda s:any(len(set(textwrap.wrap(s,l)))<2 for l in range(1,len(s)))

পুনরাবৃত্তি করা প্রতিটি স্ট্রিংয়ের প্রতিটি সম্ভাব্য দৈর্ঘ্য পরীক্ষা করার জন্য স্ট্রিংটিকে দৈর্ঘের টুকরো টুকরো টুকরো টুকরো করার textwrap.wrapজন্য ( এই উত্তরের ধন্যবাদ ) ব্যবহার করে n। বিভক্ত টুকরাগুলি সেটে যুক্ত করে একে অপরের সাথে তুলনা করা হয়। যদি টুকরোগুলির সমস্ত সমান হয় এবং সেটটি দৈর্ঘ্য 1 এর হয় তবে স্ট্রিংটি অবশ্যই পুনরাবৃত্ত স্ট্রিং হওয়া উচিত। আমি ব্যবহার করতাম<2 পরিবর্তে==1 কারণ এটি একটি বাইট সংরক্ষণ করে এবং ইনপুট স্ট্রিংয়ের দৈর্ঘ্য শূন্যের চেয়ে বড় হওয়ার নিশ্চয়তা ছিল ed

nদৈর্ঘ্যের সাবট্রিংগুলি nসম্পূর্ণ স্ট্রিং তৈরি করে এমন কোনও কিছু যদি না থাকে তবে পুরো ফাংশনের জন্য মিথ্যা ফিরিয়ে দিন।


2

05 এ বি 1 ই , 5 বাইট

পূর্ববর্তী প্রশ্ন থেকে xnor এর পদ্ধতিটি 05AB1E এও অনুকূল বলে মনে হচ্ছে।

«¦¨så

এটি অনলাইন চেষ্টা করুন! বা টেস্ট স্যুট হিসাবে

ব্যাখ্যা

«       # append input to input
 ¦¨     # remove the first and last character of the resulting string
   så   # check if the input is in this string

1
অবশ্যই .. যখন আমি দেখি যে সেখানে কেউ নেই তখন আমি একটি 05AB1E উত্তর দিতে চলেছিলাম। কলেজ আমাকে কিছু প্রশ্ন জিজ্ঞাসা করেছিল এবং তার অবকাশ সম্পর্কে কথা বলেছিল। আমি পর্দায় ফিরে তাকান: একটি নতুন উত্তর। তদা, আবার
এক্সডিকে

@ কেভিন ক্রুজসেন: এটি সাধারণ। আমার সাথে বেশ কয়েকবার ঘটেছে;)
এমিগিনা

2

পরিষ্কার , 73 বাইট

রেজেক্স ব্যবহার করে না।

import StdEnv,Data.List
$s=or[isPrefixOf s(cycle t)\\t<-tl(tails s)|t>[]]

এটি অনলাইন চেষ্টা করুন!

সংজ্ঞা দেয় $ :: [Char] -> Bool
প্রদত্ত স্ট্রিংটি শেষ থেকে নেওয়া কোনও সাব-স্ট্রিংয়ের পুনরাবৃত্তির উপসর্গ কিনা তা পরীক্ষা করে।


2

সি ++ (জিসিসি) , 36 বাইট

#define f(x)(x+x).find(x,1)<x.size()

এটি অনলাইন চেষ্টা করুন!

এক্সনোরের সমাধানের আরেকটি বন্দর। যুক্তিটি প্রকাশের ক্ষেত্রে প্রসারিত করতে একটি ম্যাক্রো ব্যবহার করে। যুক্তিটি ধরণের বলে ধরে নেওয়া হয় std::string


1

ক্লিকভিউ ভেরিয়েবল, 27 বাইট

এটি একটি ভেরিয়েবল হিসাবে সংজ্ঞায়িত করা উচিত, এরপরে আপনাকে প্যারামিটারগুলি পাস করার অনুমতি দেয়, যেমন $1আপনার ইনপুট মান হিসাবে।

এটি ফিরে আসে 0বা -1(ক্লিকভিউয়ের TRUE()কার্যকারিতার সমতুল্য )।

=substringcount($1&$1,$1)>2

1

সুইফ্ট, 196 বাইট

func r(s:String)->Bool{guard let k=s.dropFirst().firstIndex(where:{$0==s.first}) else{return false};let v=s[...k].dropLast();var w=v;while s.hasPrefix(w) && s.count>=(w+v).count{w+=v};return s==w}

এটি অনলাইন চেষ্টা করুন!


আমি সুইফট ব্যবহার করি না, তবে আমি নিশ্চিত যে অতিরিক্ত শ্বেত স্থান অপসারণ করা যেতে পারে
বেনজামিন আরউখার্ট

@ বেনজমিনের পরামর্শ ব্যবহার করে 193 বাইট
আর্টেমিস মনিকাকে

@ আর্টেমিসফাউল বা এমনকি 123 বাইট
রোমান পোডিমভ




1

টি-এসকিউএল, 47 বাইট

@ এক্সনোরের পদ্ধতিটি ব্যবহার করে :

DECLARE @ varchar(max)='ababab'

PRINT sign(charindex(@,left(@+@,len(@)*2-1),2))

পুরানো উত্তরটি রাখা যেমন কিছু সুন্দর গল্ফিং রয়েছে (67 বাইট):

DECLARE @y varchar(max)='abababa'

,@ INT=0WHILE
replace(@y,left(@y,@),'')>''SET
@+=1PRINT @/len(@y)^1

ব্যাখ্যা: এই স্ক্রিপ্টটি পুনরাবৃত্তভাবে ইনপুটটিকে '@ y' ইনপুটটির '@ y' অক্ষরের সাথে '@' বাড়িয়ে কিছুটা ছাড়াই '@' বাড়ানোর চেষ্টা করছে।

যদি আপনি 'আববাব'-এ' আব 'প্রতিস্থাপন করেন তবে আপনার খালি স্ট্রিং নেই

শেষ পর্যন্ত ফলাফল খালি হবে। লুপ ভেরিয়েবলটি বার্চের দৈর্ঘ্যের সমান হলে এটি হয় যদি, মানদণ্ডটি মিথ্যা / 0 হয় কারণ '@' = লেন (@ y) (কোনও পুনরাবৃত্তি বার্চার ছিল না)।

iif(@=len(@y),0,1)

এই মধ্যে গল্ফ করা যেতে পারে

@/len(@y)^1

কারণ '@y' এর দৈর্ঘ্য 0 হতে পারে না এবং '@' দৈর্ঘ্য @ y এর চেয়ে বেশি হবে না।

এটি অনলাইনে চেষ্টা করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.