ঘোরানো স্ট্রিংগুলি সনাক্ত করুন


20

থেকে দুটি স্ট্রিং পড়ুন stdin। যদি একটি স্ট্রিং অন্যটির ঘোরানো সংস্করণ হয় তবে
আউটপুট Yes
অন্যথায় আউটপুটNo

Testcases

ইনপুট

CodeGolf GolfCode

আউটপুট

Yes

ইনপুট

stackexchange changestackex

আউটপুট

Yes

ইনপুট

stackexchange changestack

আউটপুট

No

ইনপুট

Hello World

আউটপুট

No

তাহলে ( abcdefAB , ABabcdef ) "ইয়েস"?
এলেভেক্স

এটি কি আসলেই ঘোরানো উচিত বা একটি সংমিশ্রণটিও ঠিক আছে? যেমন। কি Stackexchange Stackchangeexফিরে আসবে?
jpjacobs

1
@ এলভেক্স, হ্যাঁ @ jpjacobs, এটি ফিরে আসবে No। ঘূর্ণনটি একটি এলইডি স্ক্রোলিং লক্ষণগুলির মতো একটি শিফট
জিনিবলার

স্ট্রিংগুলি কি সর্বদা হোয়াইটস্পেস-মুক্ত এবং সাদা স্থান দ্বারা পৃথক করা হয়?
জোয়ি

আরও সুনির্দিষ্টভাবে বলা যায়, এই স্ট্রিংগুলিতে কোন অক্ষর অনুমোদিত?
জোয়

উত্তর:


7

এপিএল (২৮)

দুটি লাইনে ইনপুট নেয়।

'No' 'Yes'[1+(⊂⍞)∊⌽∘A¨⍳⍴A←⍞]

ব্যাখ্যা:

  • A←⍞: ইনপুট একটি লাইন পড়ুন এবং এটি এ সঞ্চয়
  • ⌽∘A¨⍳⍴A: প্রতিটি x এর জন্য [1.. দৈর্ঘ্য এ] এটিকে x দ্বারা আবর্তন করুন। একটি তালিকা দেয়, যেমনestT stTe tTes Test
  • (⊂⍞)∊: ইনপুটটির অন্য লাইনটি পড়ুন এবং দেখুন যে এটি এই তালিকায় রয়েছে।
  • 1+: এতে একটি যুক্ত করুন, স্ট্রিংগুলি ঘোরানো না হলে 1 এবং 2 টি দিলে দিন
  • 'No' 'Yes'[... ]: 'No' 'Yes'স্ট্রিংগুলি ঘোরানো হয়েছে কি না তার উপর নির্ভর করে তালিকা থেকে প্রথম বা দ্বিতীয় উপাদানটি নির্বাচন করুন ।
  • এই মানটি স্বয়ংক্রিয়ভাবে আউটপুট হয়।

19

রুবি 49 41

a,b=$*;puts (a*2).sub(b,'')==a ?:yes: :no

সম্পাদনা করুন: get sp * দ্বারা স্প্লিট প্রতিস্থাপন


এটি একটি উদ্ভাবনী ধারণা।
জোয়ি

খুব চালাক. :)
st0le

$*প্রশ্নটি নির্দিষ্ট করা হলে আরগভি হয় stdin
ম্যাথিউ CAROFF

7

পাইথন, 70 বাইট

a,b=raw_input().split()
print ['No','Yes'][a in b*2and len(a)==len(b)]

পরীক্ষামূলক ...


+1 ভাল লাগছে, অ্যারে থেকে ফলাফল নির্বাচন করা চালাক! :-)
তামারা উইজসম্যান

3
প্রশ্নটিতে আপনার দুটি স্ট্রিং পড়া উচিত stdin, যা এই সমাধানটি দেয় না।
ভেন্টোরো

@Ventero: সংশোধন করা হয়েছে।
কুইসোটিক

আপনি স্থানটি এড়িয়ে যেতে পারেনprint ['No
মুভিটিকা

6

পাইথন 70 টি অক্ষর

a,b=raw_input().split()
print'YNeos'[len(a)<>len(b)or a not in 2*b::2]

স্লাইস কৌতুক জন্য gnibbler ধন্যবাদ।


1
গল্ফস্ক্রিপ্ট সমাধান হিসাবে একই সমস্যা: আপনি ইনপুট nn nfn, আপনি পাবেন Yes, যা ভুল।
তামারা উইজসম্যান

@ টমউইজ বাগটি খুঁজে পাওয়ার জন্য ধন্যবাদ। সংশোধন। এখন কাজ করা উচিত।
fR0DDY

আপনি এটির <>দ্বারা প্রতিস্থাপন করতে পারেন যা তাদের সমান দৈর্ঘ্যের -হয় 0তবে ফলাফল হবে ।
তামারা উইজসম্যান

তবে তারা যদি সমান দৈর্ঘ্যের না হয়? তারপরে এটি এতটা ভাল কাজ করে না :-)
হলভাবো

@ হ্যালভাবো তাহলে স্ট্রিংগুলি একে অপরের ভার্সন ঘোরা হয় না।
fR0DDY

5

জে, 47

y=:>2{ARGV
(>1{ARGV e.1|.^:(i.#y)y){'No',:'Yes'

কেন দুই জে জবাব দেয়?
জেবি

@ জেবি: কারণ এটি বিল্টিন ঘোরানো ব্যবহার করে। উভয় উত্তর su ^ H ^ H এত ভাল btw নয়। একটা হল অনেক golfing জন্য ঘর থেকে।
এলেভেক্স

অন্যটি কেন, তবে আমি জিজ্ঞাসা করতে প্ররোচিত হই? :-)
জেবি

@ জেবি: কারণ আমি ভেবেছিলাম এটি একমাত্র আইনী (: পি) [অন্যদিকে লিসপ করার ক্ষেত্রে সুন্দরভাবে প্রসারিত হয়েছে। ]
এলেভেক্স

ত্রুটি ... অন্যটি কমান্ড-লাইন থেকে ইনপুটও পড়তে পারে বলে মনে হচ্ছে
জেবি

5

বৈশিষ্ট অনুযায়ী (একই স্ট্রিং দৈর্ঘ্য):

পার্ল, 42 43 অক্ষর

$.=pop;$_=(pop)x2;print+(qw'yes no')[!/$./]

বিভিন্ন আকারের স্ট্রিং যদি অনুমোদিত হয় তবে সমাধানটি হ'ল:

পার্ল, 47 টি অক্ষর

$.=(pop)x8;$_=(pop)x9;print+(qw'yes no')[!/$./]

rbo


গল্ফস্ক্রিপ্ট সমাধান হিসাবে একই সমস্যা: আপনি ইনপুট nn nfn, আপনি পাবেন Yes, যা ভুল।
তামারা উইজসম্যান

1
ঠিক আছে বলে মনে হচ্ছে (আমি প্রথম সংস্করণে '!' মিস করেছি) "nn nfn" => কোনও "কোডগল্ফ গল্ফকোড" => হ্যাঁ
রাবার বুট

5

গল্ফস্ক্রিপ্ট, 31

' '/:)~,\,=)~.+\/,(&'Yes''No'if

এটির আগে একটি চেক দৈর্ঘ্য, সুতরাং এটি প্রত্যাশা অনুযায়ী কাজ করা উচিত।


:)এবং =)খুব খুশি কোডের জন্য +1
TuxCraftting

4

জে, 57

{&('No';'Yes')@-:/@:((/:~@(|."0 _~i.&$))&.>)&.(;:&stdin)_

নমুনা ব্যবহার:

$ echo -n CodeGolf GolfCode | jconsole rotate.ijs
Yes
$ echo -n stackexchange changestackex | jconsole rotate.ijs
Yes
$ echo -n stackexchange changestack | jconsole rotate.ijs
No
$ echo -n Hello World | jconsole rotate.ijs
No

3

উইন্ডোজ পাওয়ারশেল, 76

$a,$b=-split$input
('No','Yes')[+!($a.length-$b.length)*"$b$b".contains($a)]

3

জাভাস্ক্রিপ্ট, 51

function f(a,b)a&&(a+a).replace(b,"")==a?"Yes":"No"

জাভাস্ক্রিপ্টের কোনও ক্যানোনিকাল হোস্ট নেই, সুতরাং এই উত্তরটি দুটি আর্গুমেন্টের ফাংশন হিসাবে লেখা হয়েছে। যদি আমরা জেএস 1.7 বৈশিষ্ট্যগুলি (এক্সপ্রেশন ক্লোজার) অগ্রাহ্য করি তবে স্কোরটি 60 পর্যন্ত চলে যায়।

স্পাইডারমনকি শেলের মধ্যে এটি হবে (of১ এর স্কোরের জন্য):

[a,b]=readline().split(" ");print(a&&(a+a).replace(b,"")==a?"Yes":"No")

5 বছর পরে এবং এখন আপনি =>ফাংশন স্বরলিপিটি ব্যবহার করতে পারেন ;)
জে আত্কিন

3

পাইথন, 66 63

A, B = raw_input ()। বিভক্ত ()
print'YNeos '[একটি! = (2 * ক) .replace (খ, "") :: 2]

69 চরের আরেকটি সমাধান

A, B = raw_input ()। বিভক্ত ()
['না', 'হ্যাঁ'] মুদ্রণ করুন [a ইন বি * 2 এবং লেন (ক) == লেন (খ)]

2
print'YNeos'[a!=(2*a).replace(b,"")::2]
gnibbler

@gnibbler সুন্দর কৌশল, পরামর্শের জন্য ধন্যবাদ। আমি কোডটি আপডেট করেছি
কোডিং ম্যান

2

জে, 84

y=:(>1{ARGV),:(>2{ARGV)
((0{y)e.(y&((]$0{[),(]-~[:}.[:$[)$1{[)/.i.}.$y)){'No',:'Yes'

2

জাভাস্ক্রিপ্ট (১২০ টি চর)

function f(a,b) {for (i=0,A=a.split("");A.join("")!=b&&i++<a.length;A.push(A.shift()));return A.join("")==b?'Yes':'No';}

আউটপুট:

f('CodeGolf','GolfCode'); //Yes
f('stackexchange','changestackex'); //Yes
f('stackexchange','changestack'); //No
f('Hello','World'); //No
f('nn','nBn'); //No

2

রুবি, 58 (62) অক্ষর

a,b=gets.split;$><<(a.size==b.size&&/#{a}/=~b*2?:Yes: :No)

এই সমাধানটি ধরে নিয়েছে ইনপুটটিতে কেবলমাত্র আলফানিউমেরিক্যাল অক্ষর রয়েছে (আসলে সমস্ত কিছু যা নিয়মিত অভিব্যক্তির ভিতরে একটি বিশেষ অর্থ রাখে না ঠিক আছে)।

এই সীমাবদ্ধতা নেই এমন একটি সমাধান 4 অক্ষর দীর্ঘ

a,b=gets.split;$><<(a.size==b.size&&(b*2).index(a)?:Yes: :No)

2

পাইথন, 71

a,b=raw_input().split()
print'Yes'if a in b*2and len(a)==len(b)else'No'

গল্ফস্ক্রিপ্ট সমাধান হিসাবে একই সমস্যা: আপনি ইনপুট nn nfn, আপনি পাবেন Yes, যা ভুল।
টিমউই

সমস্যার সমাধান হয়েছে, কম রয়ে গেছে ... :-)
তমারা উইজসম্যান

উল্লিখিত হিসাবে স্টিডিন থেকে পড়েন না।
ওবল

এখন এটি ... :-)
তমারা উইজসম্যান


2

রুবি, 41

puts gets =~ /^(.+)(.*) \2\1$/ ?:Yes: :No

কিছু মুদ্রণ করে না, ফলাফল ': না' ইনপুট 'আ আ আ' (আমার মেশিনে) এর জন্য। যদিও regexp পদ্ধতির একটি ভাল ধারণা হতে পারে।
স্টেনস্ল্যাগ

আরগনের পরিবর্তে স্টিডিন থেকে মুদ্রণ এবং ইনপুট ঠিক করুন: puts gets =~ /^(.+)(.*) \2\1$/ ?:Yes: :No- এটি 41 অক্ষরে আপ করুন।
নিমো 157

2

হাস্কেল ( 98 96 টি)

g x y@(t:r)(z:w)|x==y="Yes"|1>0=g x(r++[t])w
g _ _[]="No"
f(x:y:_)=g x y y
main=interact$f.words


2

স্কলা 78

val b=readLine split " "
print(b(0).size==b(1).size&&(b(0)+b(0)contains b(1)))

আকার চেক সম্পর্কে এটি লজ্জাজনক, এটি ছাড়াই গণনা 54 হয়ে যায়

val a=readLine split " "
print(a(0)+a(0)contains a(1))

"""val b=readLine split " " print(b(0).sorted==b(1).sorted)""".lengthফলন হয়েছে 56
ব্যবহারকারীর অজানা


2

গল্ফস্ক্রিপ্ট, 25 বাইট

' '/~.2*@/''+='Yes''No'if

কিভাবে এটা কাজ করে

             # STACK: "CodeGolf GolfCode"
' '/         # Split input string by spaces.
             # STACK: [ "CodeGolf" "GolfCode" ]
~            # Dump the array.
             # STACK: "CodeGolf" "GolfCode"
.            # Duplicate the topmost string.
             # STACK: "CodeGolf" "GolfCode" "GolfCode"
2*           # Repeat the topmost string.
             # STACK: "CodeGolf" "GolfCode" "GolfCodeGolfCode"
@            # Rotate the three topmost strings.
             # STACK: "GolfCode" "GolfCodeGolfCode" "CodeGolf"
/            # Split the second topmost string around the topmost one.
             # STACK: "GolfCode" [ "Golf" "Code" ]
''+          # Flatten the array of strings.
             # STACK: "GolfCode" "GolfCode"
=            # Check for equality.
             # STACK: 1
'Yes''No'if  # Push 'Yes' for 1, 'No' for 0.
             # STACK: "Yes"


1

লুয়া 115 অক্ষর

a,b=io.read():match"(%w+) (%w+)"c=b repeat c=c:sub(2,-1)..c:sub(1,1) s=s or a==c until b==c print(s and"Yes"or"No")



1

পার্ল, 123 অক্ষর

@s1=split(//,shift);
$s2=shift;
$i=0;
while($i<=@s1){
    if(join("",@s1) eq $s2){die "yes";}
    unshift @s1,pop @s1;
    $i++;
}
die "no";

1

রুবি, 30 37

gets
puts~/^(.+)(.*) \2\1$/?:Yes: :No

একটি সংস্করণ যা "হ্যাঁ" এবং "না" এর পরিবর্তে "সত্য" এবং "মিথ্যা" মুদ্রণ করে:

gets
p !! ~/^(.+)(.*) \2\1$/

এই উভয়ই বিভিন্ন দৈর্ঘ্যের স্ট্রিং দিয়ে কাজ করে (পুরানোটির মতো নয়)


যদি দুটি স্ট্রিং একই দৈর্ঘ্য হয় তবে কাজ করে তবে 'গল্ফকোড গল্ফ' এর মতো ইনপুটটিতে ব্যর্থ হয়।
স্টেনস্ল্যাগ


1

পার্ল (কেবলমাত্র দ্রুত সমাধান)

রাবার বুটের সমাধানের সমাধান, আমি একজন নতুন ব্যবহারকারী হওয়ায় আমি এখনও মন্তব্য করতে পারি না তাই আমি কেবল একটি নতুন উত্তর পোস্ট করব।

উল্লিখিত পদ্ধতিটি ব্যবহারকারীর ইনপুট থেকে নিয়মিত প্রকাশিত অভিব্যক্তি ব্যবহার করে, সুতরাং একটি ছোট রেজেক্স ইনজেকশন করা সম্ভব:

> পার্ল-লেলে '$। = পপ; $ _ = (পপ) x2; প্রিন্ট + (কিউডাব্লু / হ্যাঁ না /) নভেম্বর !/$./]' কিছু '। *'
হ্যাঁ

সমাধানটি হ'ল \ কিউ (কোটমেটা নামেও পরিচিত):

> পার্ল -লে '$। = পপ; $ _ = (পপ) x2; প্রিন্ট + (কিউডাব্লু / হ্যাঁ না /) [! / \ প্রশ্ন $। /]' কিছু '। *'
না

কোডটি নিজেই 'বলুন' ব্যবহার করে আরও ছোট করা যেতে পারে তবে এটি পাঠকের অনুশীলন হিসাবে ছেড়ে গেছে :)


তদতিরিক্ত, আপনি পরিবর্তে print+(qw/yes no/)[সম্ভবত লিখতে পারেন print qw(yes no)[যা দুটি অক্ষর খাটো।
টিমউই
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.