প্যাঁচালো ^ এইচ ^ এইচ ^ এইচ ^ এইচ ^ এইচ ^ Hspaces


47

কিছু টার্মিনালে, ব্যাকস্পেস টিপলে ^Hপূর্বের অক্ষরটি মুছতে নিয়ন্ত্রণ কোড তৈরি করে । এটি এমন ছদ্মবেশী আইডিয়মের উত্থান ঘটায় যেখানে সম্পাদনাগুলি কৌতুক প্রভাবের জন্য মনোনীত করা হয় :

এই বোকা ^ এইচ ^ এইচ ^ এইচ le হিজেন্টলম্যানের সাথে সুন্দর হন, তিনি কর্পোরেট সদর দপ্তর থেকে আসছেন।

এক বা একাধিক এর সাথে একটি স্ট্রিং দেওয়া ^H, প্রতিটিটিতে ব্যাকস্পেসিংয়ের ফলাফল আউটপুট ^H। ইনপুটটি কেবল মুদ্রণযোগ্য অক্ষর (ASCII 32-126) ব্যবহার করবে এবং ^কেবল হিসাবে প্রদর্শিত হবে ^H। ব্যাকস্পেসগুলি খালি পাঠ্যে কখনও ঘটবে না।

আপনি ধরে নিতে পারেন না যে আউটপুট পরিবেশ বিশেষত ব্যাকস্পেস কোডটি নিয়ন্ত্রণ কোডগুলি সমর্থন করে \x08

>> Horse^H^H^H^H^HCow
Cow

>> Be nice to this fool^H^H^H^Hgentleman, he's visiting from corporate HQ.
Be nice to this gentleman, he's visiting from corporate HQ.

>> 123^H45^H^H^H78^H
17

>> Digital Trauma^H^H^H^H^H^H^H^H^H^H^H^H^H^HMaria Tidal Tug^H^H^H^H^H^H^H^H^H^H^H^H^H^H^HDigital Trauma
Digital Trauma

লিডারবোর্ড

মার্টিন বাটনার সৌজন্যে এখানে একটি উপ-ভাষা লিডারবোর্ড ।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

# Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

# Ruby, <s>104</s> <s>101</s> 96 bytes


4
কি AAA^HB^H^Hবৈধ?
নাথান মেরিল

@ নাথানমেরিল হ্যাঁ, এটির ফলাফল A
xnor

3
আমার সন্দেহ রেটিনা এখানে ভাল করবে।
ক্লাদিউ

1
@ ফ্যাটালাইজ: "খালি পাঠ্যে ব্যাকস্পেসগুলি কখনই ঘটবে না।"
মালটিসেন

উত্তর:


69

জিএনইউ সেড, 11 বাইট

:;s/.^H//;t

পরীক্ষার আউটপুট:

$ echo "Horse^H^H^H^H^HCow
Be nice to this fool^H^H^H^Hgentleman, he's visiting from corporate HQ.
123^H45^H^H^H78^H
Digital Trauma^H^H^H^H^H^H^H^H^H^H^H^H^H^HMaria Tidal Tug^H^H^H^H^H^H^H^H^H^H^H^H^H^H^HDigital Trauma" | sed ':;s/.^H//;t'
Cow
Be nice to this gentleman, he's visiting from corporate HQ.
17
Digital Trauma
$ 

5
কে দেখিয়েছে! এটি মারিয়া জোয়ারের টাগ ^ এইচ ^ এইচ ^ এইচ ^ এইচ ^ এইচ ^ এইচ ^ এইচ ^ এইচ ^ এইচ ^ এইচ ^ এইচ ^ এইচডিজিটাল ট্রমা!
অ্যালেক্স এ

@AlexA। আমি কি কোন রসিকতা অনুভব করছি?
ব্যবহারকারী 253751

@ ইমিবিস: প্রশ্নটিতে ডিজিটাল ট্রমা মন্তব্য দেখুন ।
অ্যালেক্স এ।

sed -r ':;s/(^|.)\^H//;t'- এটি অতিরিক্ত 6 বাইট ব্যয়ে কাজ করে
আরগায়ার

@ আরগের কেন এটি প্রয়োজনীয়? ওপিতে বলা হয়েছে " ব্যাকস্পেসগুলি খালি পাঠ্যে কখনও ঘটবে না " আমি মনে করি ^Hস্ট্রিংয়ের একটি সূচনা খালি পাঠ্যের ব্যাকস্পেস।
ডিজিটাল ট্রমা

19

পাইথ, 11 বাইট

.U+PbZcz"^H

প্রদর্শন.

.U+PbZcz"^H
               Implicit: z = input()
      cz"^H    z.split("^H")
.U             reduce, with the first element of the list as the initial value.
   Pb          Remove the last character of what we have so far.
  +  Z         And add on the next segment.
               Print implicitly.

17

Gema, 6 বাইট

?#\^H=

নমুনা রান:

bash-4.3$ gema -p '?#\^H=' <<< 'pizza is alright^H^H^H^H^H^Hwesome'
pizza is awesome

সিডব্লিউ, কারণ বোকা বনাম ভদ্রলোক উদাহরণটি অনেক বেশি সময় নেয়। (একদিন পর হত্যা করা হয়েছে। সম্ভবত দোভাষীর কোনও ত্রুটি? এখানে অন্যান্য সমস্ত উদাহরণ সেকেন্ডের ভগ্নাংশে প্রক্রিয়াজাত করা হয়)) গেমার পুনরাবৃত্ত প্যাটার্নটি পুনরাবৃত্তি স্তর দ্বারা প্রভাবিত বলে মনে হয় না, তবে মিল না-পাওয়া টেক্সটের পরিমাণ প্রসেসিংয়ের সময়কে তাত্পর্যপূর্ণভাবে বাড়িয়ে তোলে ।


ভাষার কোনও লিঙ্ক আছে?
গিথুবের

অবশ্যই। gema.sourceforge.net ( বিটিডাব্লু , জেমা প্রকল্পটি 2003-10-27 এ নিবন্ধিত হয়েছিল, যখন গিটহাবটি 2008-04-10 চালু হয়েছিল there এটি সেখানে না পাওয়ার কারণ হতে পারে))
manatwork

আমি বিশ্বাস করি পুনরাবৃত্তির গভীরতা, অ-ম্যাচিং স্ট্রিং এর দৈর্ঘ্য সমানভাবে কারণ এটি পর্যন্ত বারবার recurse হবে \^Hmaches, এর একটি সময়ে এক চরিত্র মিলে ?
isaacg

15

সি, 52 বাইট

j;f(char*s){for(j=0;*s=s[j];s[j]==94?s--,j+=3:s++);}

আমরা একটি ফাংশন সংজ্ঞায়িত করি fযা স্ট্রিংয়ের ইনপুট হিসাবে একটি পয়েন্টার নেয়। ফাংশন কল করার পরে, সেই পয়েন্টারে একটি পরিবর্তিত স্ট্রিং থাকবে।

একটি সহজ পরীক্ষা:

int main(int argc, char** argv) {
    char buf[300] = "Digital Trauma^H^H^H^H^H^H^H^H^H^H^H^H^H^HMaria Tidal Tug^H^H^H^H^H^H^H^H^H^H^H^H^H^H^HDigital Trauma";
    f(buf);
    printf(buf);
    return 0;
}

উপরের প্রিন্টগুলি:

Digital Trauma

1
এটা সত্যিই চালাক ছিল। কয়েকটি জিনিস আমি লক্ষ্য করেছি: গ্লোবালগুলি ইতিমধ্যে শূন্যে সূচনা করা হয়েছে, সুতরাং jআপনার forলুপে আরম্ভ করার প্রয়োজন নেই (অবশ্যই এটি একক ব্যবহার, তবে আমি বিধিগুলিতে এটি কিছুই দেখতে পাচ্ছি না))। আপনি হ্রাসের সাথে অ্যাসাইনমেন্টটিও একত্রিত করতে পারেন: j;f(char*s){for(;s[j]==94?*s--=s[j],j+=3:s++);}(47 বাইট)
কোল ক্যামেরন


@ंडरগ্রাউন্ডমোনোরাইল ডাং, আমি এটি মিস করেছি কিনা তা দেখার জন্য আমি কেবল ডাবল চেকিং করছি। আমি এখনও কোড গল্ফে নতুন কিন্তু আমি মনে করব ভবিষ্যতের জন্য :) :) তথ্যের জন্য ধন্যবাদ!
কোল ক্যামেরন

1
@ কোলক্যামেরন যার একটি অনির্দিষ্ট পরিবর্তন এবং অ্যাক্সেস (ইউবি) রয়েছে এবং দুর্ভাগ্যক্রমে আমার সংকলক / মেশিনে তাত্ক্ষণিক EXC_BAD_ACCESS সৃষ্টি করে।
ব্রেইন স্টিল

1
@ কুইন্টিন আমি চেষ্টা করেছিলাম, কিন্তু কমা ইন s--, j+=3এবং অপারেটর অগ্রাধিকারের কারণে এটি সঠিকভাবে কাজ করে না।
BrainSteel

14

হাস্কেল, 47 বাইট

h(a,_:_:b)=f$init a++b;h(x,_)=x
f=h.span(/='^')

একটি ফাংশন সংজ্ঞা দেয় f :: String -> String। কিভাবে এটা কাজ করে:

    f "ab^Hc^Hd"
=== h ("ab", "^Hc^Hd")   (find ^H)
=== f ("a" ++ "c^Hd")    (backspace)
=== f "ac^Hd"            (join)
=== h ("ac", "^Hd")      (find ^H)
=== f ("a", "d")         (backspace)
=== f "ad"               (join)
=== h ("ad", "")         (find ^H)
=== "ad"                 (no ^H: base case)

1
আমার মনে হয় আপনি এর দুটি মামলা সোয়াপিং দ্বারা একটি বাইট সংরক্ষণ করতে পারবেন hএবং করছেন h(x,_)=xখালি স্ট্রিং ক্ষেত্রে জন্য।
জাগারব

12

সিজেম, 14 13 বাইট

q"^H"/{W\ts}*

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

q                   e# Read the entire input
 "^H"/              e# Split it on occurrences of string "^H"
      {    }*       e# Reduce on the split array
       W\t          e# This is the tricky part. We know that if there are two parts that we
                    e# are reducing on, they must be separated by "^H". Which in turn means
                    e# that from the first part, last characters needs to be deleted
                    e# So we simply put the second part in place of the last character of the
                    e# first part.
          s         e# Doing the above makes it a mixed array of character and string.
                    e# So we convert it to a single string, ready to be served as first part
                    e# in next reduce iteration

আপডেট: জিমি 23013 কে ধন্যবাদ 1 বাইট সংরক্ষিত

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


2
1 বাইট খাটো: W\ts
জিমি 23013

11

রেটিনা, 13 বাইট

অক্ষিপট

+`.\^H(.*)
$1

দুটি লাইন তাদের নিজস্ব ফাইলে যেতে হবে তবে আপনি -sপতাকাটি দিয়ে একটি ফাইল হিসাবে কোড চালাতে পারেন ।

প্রতিটি পদক্ষেপে আমরা .\^Hস্ট্রিংয়ের জন্য প্রথম ম্যাচটি মুছি। +কোনও মুছে ফেলা না হওয়া পর্যন্ত আমরা এটি ( সংশোধক সহ) পুনরাবৃত্তি করি ।


কেবল একটি কৌতূহল: কেন ক্যাপচারিং (.*), যেমন মনে হচ্ছে কেবল অপরিবর্তিত রেখে দেওয়া হয়েছে?
manatwork

1
@ মান্যাটওয়ার্ক এইভাবে আমরা কেবল .\^Hএক ধাপে প্রথমটি ক্যাপচার করি । অন্যথায় প্রথম পদক্ষেপ পরে abc^H^H^Hফলাফল ab^
এলোমেলো

4
এখনও প্রতিস্থাপনের সীমা বাস্তবায়নের জন্য ক্ষমাপ্রার্থনা (যা সম্ভবত এরকম কিছু করার অনুমতি দেয় +1`.\^H) ;)
মার্টিন ইন্ডার

10

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

f=s=>(t=s.replace(/.\^H/,''))!=s?f(t):t

// TEST

Out=x=>O.innerHTML+=x+'\n'

Test=_=>(Out(I.value + "\n-> " + f(I.value)),I.value='')

;["Horse^H^H^H^H^HCow"
,"Be nice to this fool^H^H^H^Hgentleman, he's visiting from corporate HQ."
,"123^H45^H^H^H78^H"
,"Digital Trauma^H^H^H^H^H^H^H^H^H^H^H^H^H^HMaria Tidal Tug^H^H^H^H^H^H^H^H^H^H^H^H^H^H^HDigital Trauma"]
.forEach(t => Out(t + "\n-> " + f(t)))
#I { width:400px }
<pre id=O></pre>
<input id=I><button onclick='Test()'>-></button>


10

পার্ল, 20 16 15 বাইট

(১৪ টি অক্ষরের কোড + 1 অক্ষর কমান্ড লাইন বিকল্প)

s/.\^H//&&redo

নমুনা রান:

bash-4.3$ perl -pe 's/.\^H//&&redo' <<< "Be nice to this fool^H^H^H^Hgentleman, he's visiting from corporate HQ."
Be nice to this gentleman, he's visiting from corporate HQ.

1
4 টি অক্ষর সংরক্ষণ করুন:1while s/.\^H//
কেভিন রেড

কি দারুন! কেভিনআরিড দুর্দান্ত। ধন্যবাদ.
manatwork

1
আরও একটি:s/.\^H//&&redo
ডেনিস

ধন্যবাদ, ডেনিস। redoএকরকমভাবে আমার দক্ষতার সেটে প্রবেশ করিনি। যে পরিবর্তন করতে হবে।
ম্যান্যাটওয়ার্ক

2
নোট করুন যে @ ডেনিসের সংস্করণটি কেবলমাত্র কাজ করবে (যেমন হিসাবে) এটি কোনও লুপ বা কোনও { }ব্লকের মধ্যে কেবলমাত্র বিবৃতি । (এটির সাথে কাজ করার কারণটি perl -pহ'ল -pস্যুইচটি স্বয়ংক্রিয়ভাবে আপনার কোডটিকে একটি whileলুপের মধ্যে আবদ্ধ করে )) কেভিনের সংস্করণ যে কোনও সেটিংসে কাজ করে।
ইলমারি করোনেন

9

জুলিয়া, 58 42 41 বাইট

ম্যানটওয়ার্কের জন্য 16 বাইট সংরক্ষণ করা এবং গ্লেন ওকে 1 ধন্যবাদ!

f(s)='^'s?f(replace(s,r".\^H","",1)):s

এটি একটি পুনরাবৃত্ত ফাংশন তৈরি করে যা একটি স্ট্রিং গ্রহণ করে এবং একটি স্ট্রিং প্রদান করে।

^Hইনপুট থাকা অবস্থায় এটি খালি স্ট্রিংয়ের সাথে একসাথে এক ঘটনার প্রতিস্থাপন করে ^

উদাহরণ:

julia> f("123^H45^H^H^H78^H")
"17"

julia> f("pizza is alright^H^H^H^H^H^Hwesome")
"pizza is awesome"

এই প্রথম আমি জুলিয়াকে বুনোতে দেখেছি। নিস!
ওগাদে

8

REGXY, 10 বাইট

REGXY ব্যবহার করে , একটি রেজেক্স প্রতিস্থাপন ভিত্তিক ভাষা। Character এইচ-এর কোনও অক্ষরকে কিছু না করে প্রতিস্থাপন করে। দ্বিতীয় লাইনটি তখন সম্পাদন করে যা পূর্ববর্তী লাইনের কেবলমাত্র একটি পয়েন্টার, এটি মেলে ব্যর্থ না হওয়া অবধি প্রতিস্থাপনের পুনরাবৃত্তি করে।

/.\^H//
//

এটি উপরের লিঙ্কে নমুনা দোভাষীর সাথে সঠিকভাবে সংকলন এবং সম্পাদন করে, তবে ভাষাটি নির্দিষ্টকরণের অস্পষ্টতার একটি অনুমানের উপর নির্ভর করে সমাধানটি সম্ভবত খানিকটা চটকদার। অনুমানে বলা হয়েছে যে প্রতিটি লাইনের প্রথম টোকেন (/ / এর আগে) লেবেল হিসাবে কাজ করে তবে অনুমান করা হয় যে নাল লেবেল-পয়েন্টারটি নাল লেবেলযুক্ত ফাইলের প্রথম কমান্ডের দিকে ফিরে নির্দেশ করবে (বা অন্য কথায়, যে 'নাল' একটি বৈধ লেবেল)। একটি কম উদ্ভট সমাধান হবে:

a/.\^H//
b//a

যার পরিমাণ 13 বাইট।


7

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

o=""
for x in input().split("^H"):o=o[:-1]+x
print(o)

তবে ব্যক্তিগতভাবে আমি এই শব্দযুক্ত সংস্করণটি আরও ভাল পছন্দ করি:

H=input().split("^H")
print(eval("("*~-len(H)+")[:-1]+".join(map(repr,H))))

মজার বিষয় হ'ল এটি

'B''a''c''k''h''a''n''d''e''d'[:-1][:-1][:-1][:-1][:-1][:-1]

আসলে কাজ করে এবং দেয় 'Back', তাই আমি তখন মানচিত্র ^H -> [:-1]এবং অন্য কোনও চরটি চেষ্টা করার চেষ্টা করেছি , তবে দুর্ভাগ্যক্রমে আপনি ছাড়া কোনও স্ট্রিং পরে থাকতে পারে না , সুতরাং এটি ব্যর্থ হয়:c -> 'c'eval+

'B''a''c''k''h''a''n''d''e''d'[:-1][:-1][:-1][:-1][:-1][:-1]'s''p''a''c''e''s'

আরে ... বেশ ঝরঝরে।
অ্যালেক্স ভ্যান লিউ 21

+=লুপে কাজ করে
ক্যালকুলেটরফ্লাইন

@ ক্যাটস আরেফ্লুফি এটি o=o[:-1]+x, নাo=o+x
Sp3000

উফ, মিস করলাম o[:-2]=xকাজের মতো কিছু করে ?
ক্যালকুলেটরলাইন

@ ক্যাটস আরেফ্লুফি আপনি নিয়োগ করতে পারবেন নাstr
Sp3000

7

হাস্কেল, 52 47 বাইট

import Data.Lists
foldl1((++).init).splitOn"^H"

ব্যবহারের উদাহরণ:

> map (foldl1((++).init).splitOn"^H") ["Horse^H^H^H^H^HCow", "123^H45^H^H^H78^H", "Digital Trauma^H^H^H^H^H^H^H^H^H^H^H^H^H^HMaria Tidal Tug^H^H^H^H^H^H^H^H^H^H^H^H^H^H^HDigital Trauma"]
["Cow","17","Digital Trauma"]

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

                  splitOn"^H"     -- split on substring "^H", e.g "Horse^H^H^H^H^HCow" -> ["Horse","","","","","Cow"]
                 .                -- then
foldl1(         )                 -- fold from left by
            init                  --   first dropping the last char from the left argument
       (++).                      --   second concatenating left and right argument

6

রুবি, 27 24 20 বাইট

(19 টি অক্ষরের কোড + 1 অক্ষর কমান্ড লাইন বিকল্প))

$_=$`+$'while/.\^H/

ধন্যবাদ:

নমুনা রান:

bash-4.3$ ruby -pe '$_=$`+$'"'"'while/.\^H/' <<< "Be nice to this fool^H^H^H^Hgentleman, he's visiting from corporate HQ."
Be nice to this gentleman, he's visiting from corporate HQ.

+1 আমি ভেবেছিলাম যে আমি এটি না পাওয়া পর্যন্ত একটি রুবি উত্তর করব - আমি নিশ্চিত যে এটি যতটা ছোট হবে ততই ছোট। দুর্দান্ত ব্যবহার []!
দানিরো

শুরুতে আরও একটি সংস্করণ ছিল: loop{$_[/.\^H/]=""}rescue""এটি রুবীর ব্যতিক্রম হ্যান্ডলিং শীতলতার পরিচয় দেওয়ার কারণে এটি দুর্দান্ত।
manatwork


1
কখনও না হয়ে আরও দেরী: $_=$`+$'while~/.\^H/20 এর জন্য (আপনি যদি regexp literal in conditionসতর্কতার বিষয়ে চিন্তা না করেন তবে আপনি টিল্ডও ফেলে দিতে পারেন )।
ভেন্টোরো

1
@ মান্যাটওয়ার্ক: প্রযুক্তিগতভাবে এটি সমস্ত রুবি সংস্করণগুলিতে প্রদর্শিত হয়> = 1.9 (শর্তে রেজেক্স এবং স্ট্রিং লিটারালগুলি ১.৮ এর পরে অবচিত করা হয়েছিল), আমি অনুমান করি যে আপনার rubyসাধারণভাবে এখনও ১.৮ ডিফল্ট হয়েছে, যেখানে irbরুবি ২.১.৫ ব্যবহার করে।
ভেন্টোরো

4

পাইথন 2, 50

lambdaসেখানে এক সেকেন্ড পরে যাওয়া কিছুটা অদ্ভুত , তবে এটি এখনও পর্যন্ত সেরা পাইথন বলে মনে হয়।

lambda s:reduce(lambda a,b:a[:-1]+b,s.split('^H'))

3

পাইথ - 19 বাইট

হ্রাস সত্যিই এটির সাথে সত্যিই ভাল কাজ করে তবে এটি একবারে কেবল একটি চর তৈরি করে তাই ^Hলাইন ব্রেকের সাথে প্রতিস্থাপন করতে আমাকে প্রায় প্রকৃত আলগো হিসাবে প্রায় অনেকগুলি চরিত্র ব্যয় করতে হয়েছিল । এটি করার একটি আরও ভাল উপায় খুঁজছেন।

u?+GHnHbPGjbcz"^H"k

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


3

টিস্ক্রিপ্ট , 7 বাইট [প্রতিযোগিতা নয়]

এই চ্যালেঞ্জ পোস্ট হওয়ার পরে টিস্ক্রিপ্ট তৈরি হওয়ার কারণে প্রতিযোগিতা করা হয়নি। রেফারেন্স হিসাবে এটি এখানে।

xW/.\^H

এটি নতুন টিস্ক্রিপ্ট 3 ব্যবহার করে এবং অক্ষরগুলি সরাতে পুনরাবৃত্তির পরিবর্তে


1
কোনও কারণে এটি আইএসও 8859 লিঙ্কের কারণে লিডারবোর্ডে 8859 বাইট হিসাবে গণনা করা হচ্ছে ...
ev3commander

regerence? xD
বিড়াল

2

কে 5, 64 বাইট

কে আসলেই এই ধরণের কাজের জন্য ডিজাইন করা হয়নি ...

{[s]$[2>#s;s;`=t:*&{"^H"~2#x_s}'1+!-2+#s;s;,/2#2!|(0,t,3+t)_s]}/

2

গল্ফ্লুয়া, 36 বাইট

\f(s)@o!=s o=s;s=s:g(".^H","",1)$~s$

নমুনা রান:

Lua 5.2.2  Copyright (C) 1994-2013 Lua.org, PUC-Rio
> \f(s)@o!=s o=s;s=s:g(".^H","",1)$~s$
> w(f("Be nice to this fool^H^H^H^Hgentleman, he's visiting from corporate HQ."))
Be nice to this gentleman, he's visiting from corporate HQ.

2

জাভাস্ক্রিপ্ট, 62 বাইট

সংক্ষিপ্ততম এক নয়, তবে দুর্দান্ত কাজ করে।

t=prompt();while(t.match(R=/.\^H/))t=t.replace(R,'');alert(t);

এটি সম্ভবত অনেক ছোট করা যেতে পারে!


1
সংক্ষিপ্ততম নয় এবং এটি কাজ করে না (পরীক্ষার কোনও ক্ষেত্রে চেষ্টা করুন)।
Regexp

@ edc65 টিপটির জন্য ধন্যবাদ। আমি কিছু জিনিস চেষ্টা করেছিলাম এবং তারা কাজ করে। সে কারণেই আমি এটি পোস্ট করেছি
ইসমাইল মিগুয়েল

2

আর, 54 52 বাইট

f=function(s)ifelse(s==(r=sub(".\\^H","",s)),r,f(r))

আমার জুলিয়া উত্তর হিসাবে একই বেসিক ধারণা । এটি একটি পুনরাবৃত্ত ফাংশন তৈরি করে যা একটি স্ট্রিং গ্রহণ করে এবং একটি স্ট্রিং প্রদান করে। যদি ইনপুটটি একক ঘটনার সাথে নিজের সমান হয়^H সরানোর এটিকে ফিরিয়ে দিন, অন্যথায় ফাংশনটিকে আবার কল করুন।

আপনি এটি অনলাইন চেষ্টা করতে পারেন !


2

ECMAScript 6, 57 বাইট

s=>{while(~s.indexOf`^H`)s=s.replace(/.\^H/,'');return s}

এটি সম্ভবত গল্ফযোগ্য, কেবল এমন উপায়ের কথা চিন্তা করতে হবে যা সম্ভবত নয়


2
কীভাবে s=>{while(s!=(s=s.replace(/.\^H/,""));return s}?
lrn

অথবা, যদি whileএবং returnহয় অতি দীর্ঘ, এটা রিকার্সিভ হতে পারে:var f=s=>s==(s=s.replace(/.\^H/))?s:f(s)
lrn

@ এলএম প্রতিস্থাপনের জন্য আপনার "" দ্বিতীয় প্যারামিটার যুক্ত করা উচিত। তাহলে আপনার আমার উত্তর আছে :)
edc65

সত্য। এবং খালি স্ট্রিং আর্গুমেন্টটি থাকা দরকার, আমি অবশ্যই ভুল সংস্করণটি অনুলিপি করেছি :(
লর্ড

~s.indexOf`^H`হয়ে উঠতে পারে/\^H/.test(s)
চার্লস


2

(ভিজ্যুয়াল) ফক্সপ্রো যে কোনও সংস্করণ 80 বাইট

PARA t
DO WHILE AT('^H',t)>0
t = STRT(t,SUBS(t,AT('^H',t)-1,3))
ENDDO
RETU t

H^ সন্ধান করে এবং একটি অক্ষরকে ব্যাক আপ করে খালি করে স্ট্রিং অনুবাদ পুনরাবৃত্তি করা হচ্ছে।


2

জুলিয়া, 41 39 বাইট

s->foldl((t,v)->chop(t)v,split(s,"^H"))

এটি যা করছে তা হ'ল a এইচটিকে একটি ডেলিমিটার হিসাবে ব্যবহার করছে এবং তারপরে প্রতিটি স্ট্রিংয়ের সর্বশেষ অক্ষরটি সরিয়ে আবার শেষ অক্ষরটি আবার সরিয়ে দেওয়ার আগে পরবর্তী স্ট্রিংটিতে মনোনিবেশ করে। অন্যান্য জুলিয়া উত্তরের মতো এটি কোনও পুনরাবৃত্ত ফাংশন নয়।

দ্রষ্টব্য: আমি সংজ্ঞা থেকে ফাংশনটির নামটি সরিয়েছি। মূলত, এটি f(s)=বরং এটি বলেছিল s->এবং আপনি এটি হিসাবে ব্যবহার করেছেন f("AAA^HB^H^H")... তবে আমি দুটি বাইট এটিকে "বেনামে" রেখে সংরক্ষণ করছি এবং এটির নাম হিসাবে নিজেকে ব্যবহার করছি। আপনি এটি এর মতো ব্যবহার করুন:

(s->foldl((t,v)->chop(t)v,split(s,"^H")))("AAA^HB^H^H")

(আপনি এটিতে একটি ভেরিয়েবলও নির্ধারণ করতে পারেন f=s->foldl((t,v)->chop(t)v,split(s,"^H")), তারপরে এটি কার্যকর f("AAA^HB^H^H")হবে)


2

আরএস, 8 বাইট

প্রযুক্তিগতভাবে, এটি গণনা করে না, কারণ এই প্রশ্নটি পোস্ট হওয়ার পরে আমি যুক্ত করা কোনও বৈশিষ্ট্যের উপর নির্ভর করে। তবে আমি মনে করি এটি বেশ ঝরঝরে।

+?1.\^H/

লাইভ ডেমো এবং পরীক্ষার কেস


নতুন বৈশিষ্ট্যটি কি সীমাবদ্ধ প্রতিস্থাপন?
xnor

@xnor হ্যাঁ: ?1
kirbyfan64sos

@ অপ্টিমাইজার কেন? আপনি যাইহোক জেমার কাছে হেরে যাচ্ছেন। : ও
kirbyfan64sos

হ্যাঁ :(। মন্তব্য পোস্ট করার পরে জেমা দেখেছেন
অপ্টিমাইজার 13

1

পাইথন 2, 74 + 2 = 76 বাইট

আমি এ পর্যন্ত কয়েকটি পদ্ধতির চেষ্টা করেছি, এটি এ পর্যন্ত সেরা যে আমি এ পর্যন্ত আসতে সক্ষম হয়েছি।

n=input();o='';c=0
for l in n:d=l=='^';o=[o+l*(1-c),o[:-1]][d];c=d
print o

4
কোথায় এই 2 অতিরিক্ত বাইট আসছে?
xnor

এই কাজ করার জন্য @ xnor ইনপুটটি চারপাশে কোট দিয়ে আবদ্ধ থাকতে হবে। আমি পোস্টে রাখতে ভুলে গেছি।
কেলে

1
আমি মনে করি যে সাধারণ কনভেনশনটি স্ট্রিং আর্গুমেন্টগুলি নিখরচায় উদ্ধৃতিতে গ্রহণ করার অনুমতি দেওয়া হয়েছিল, তবে আমি পুরোপুরি নিশ্চিত নই।
এক্সনোর

1

মাম্পস, 84 বাইট

R Z S T="",Y=$L(Z,"^H") F I=1:1:Y{S T=T_$P(Z,"^H",I) S:I<Y T=$E(T,1,$L(T)-1)} W !,T

এটি সম্ভবত একটি ফাংশন হিসাবে সংক্ষিপ্ত করা যেতে পারে (1 বাইট আমি দ্রুত পরীক্ষায় সংরক্ষণ করতে সক্ষম হয়েছি) তবে আমি ওয়ান-লাইনারের দিকটি পছন্দ করি ... :-)

ধনুর্বন্ধনীগুলি মাম্পসের আন্তঃব্যবস্থা ক্যাশে গন্ধ থেকে আসে যা আমি সবচেয়ে বেশি পারদর্শী।


1

জাভা - 123 বাইট

আমি ব্যক্তিগতভাবে g---1অংশটি সবচেয়ে বেশি পছন্দ করি ।

String f(char[] a){String b="";for(int g=-1;++g<a.length;b=(a[g++]=='^'?b.substring(0,b.length()-1):b+a[g---1]));return b;}

প্রসারিত (সামান্য):

  String f(char[] a) {
      String b = "";
      for (int g = -1;
           ++g < a.length;
           b = (a[g++]=='^' 
                ? b.substring(0, b.length() - 1) 
                : b + a[g---1])
      );
      return b;
  }

1

ব্যাচ - 138 বাইট

@!! 2>nul||cmd/q/v/c%0 %1&&exit/b
set s=%1&for /F %%a in ('"prompt $H&echo on&for %%b in (1)do rem"')do set D=%%a
echo %s:^H=!D! !D!%

প্রথম লাইনটি দৈর্ঘ্যের উপর দিয়ে কয়েকটি বাইট সংরক্ষণের একটি উপায় @echo off&setLocal enableDelayedExpansion(যা আপনি ভাবছিলেন এমন ক্ষেত্রে ইকো বন্ধ হয়ে যায় এবং ভেরিয়েবলের বিলম্বিত প্রসারণ সক্ষম করে)। আমি টিপস ফর গল্ফিং ইন ব্যাচে এটি ব্যাখ্যা করেছি

দ্বিতীয় লাইনটি একটি ব্যাকেসেবল ব্যাকস্পেস কন্ট্রোল ক্যারেক্টারকে ভেরিয়েবলে সংরক্ষণের জন্য একটি ঝরঝরে ছোট্ট কৌশল। এটি বেশ হ্যাকি, এবং আমি এটির জন্য ক্রেডিট নেওয়ার ভান করতে পারি না। এটি এখানে সাজানো এক ধরণের । মূলত একটি ব্যাকস্পেস অক্ষর তৈরি করতে প্রম্পট কমান্ডটি ব্যবহার করে এবং এটিকে একটি ভেরিয়েবল-এ ক্যাপচার করে !D!

প্রতিস্থাপন - চূড়ান্ত লাইন তারপর সহজ স্ট্রিং ম্যানিপুলেশন সঞ্চালিত ^Hসঙ্গে !D!<SPACE>!D!

C:\>bsp.bat "testing^H^H^H test"
"test test"

দুর্ভাগ্যক্রমে এটি এরকম ক্ষেত্রে যেমন ভেঙে যায় "AAA^HB^H^H"- যেখানে এটি উত্পাদন করা উচিত "A", পরিবর্তে এটি উত্পাদন করে "A"B। যা কিছুটা বিভ্রান্তিকর। আমাকে কীভাবে ব্যাচের স্ট্রিং ম্যানিপুলেশন আরও কিছু গভীরতার সাথে কাজ করে তা খতিয়ে দেখতে হবে।

C:\>bsp.bat "AAA^HB^H^H"
"A"B

এখানকার কিছু সহায়ক লোককে ধন্যবাদ - আমি এখন বুঝতে পারি যে আমি কেবল ব্যাকস্পেস অক্ষর (0x08) সংরক্ষণ করছিলাম এবং তাই কেবল অক্ষরগুলিকেই ওভাররাইট করছিলাম। এটি এখন নিম্নলিখিত উদাহরণগুলির সাথে কাজ করে:

C:\>bsp.bat "AAA^HB^H^H"
"A"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.