'এ' থেকে Ä রূপান্তরকারী


12

আমি বর্তমানে হাতে লেখা কিছু নথি স্ক্যান করছি এবং সেগুলিকে .txtফাইলে রূপান্তর করছি । যেহেতু আমার কাছে একটি ভয়াবহ হস্তাক্ষর রয়েছে .jpg-> .txtরূপান্তরকারী আমার কিছু উমলাটকে "সাধারণ" অক্ষরে আবদ্ধ করে'

কার্য

একটি প্রোগ্রাম বা একটি ফাংশন লিখুন যে:

  • একটি স্ট্রিং দেওয়া হয়
    • আপনি যতক্ষণ না কোনও আই / ও কোডপেজ চয়ন করতে পারেন
      • এটি চরিত্রগুলিকে সমর্থন করে AEIOUaeiouÄËÏÖÜäëïöü'।
      • ইনপুট এবং আউটপুট কোডপেজগুলি একই।
    • ইনপুটটিতে (স্পেসের পাশে) কেবল আপনার কোডপেজ থেকে মুদ্রণযোগ্য অক্ষর থাকবে।
      • কেবলমাত্র একটি সমাধান হবে, এই জাতীয় জিনিসগুলি 'a'e'প্রদর্শিত হবে না
  • নিম্নলিখিত সেটটিতে সমস্ত অক্ষর রূপান্তর AEIOUaeiouকরেÄËÏÖÜäëïöü
    • যদি, এবং কেবল যদি, তারা 'অক্ষর দ্বারা বেষ্টিত হয় :
      • উদাহরণ :'a''e' -> äë
    • যদি থেকে স্ট্রিং একটি একক চিঠি।
      • উদাহরণস্বরূপ 'AE'মোটেও পরিবর্তন হয় না, যেমন হয় আউটপুট করা।
    • যদি চরিত্র থেকে চরিত্রটি না হয় তবে সেই চরিত্রের বাইরে AEIOUaeiouকোনও পরিবর্তন হবে না।

দ্রষ্টব্য: অক্ষর থেকে / স্ট্রিং এর মধ্যবর্তী একটি '।

Testcases

Input
Output
<empty line>

'A'sthetik
Ästhetik

Meinung ist wichtig!
Meinung ist wichtig!

Ich sagte: "Er sagte: 'Ich habe Hunger'"
Ich sagte: "Er sagte: 'Ich habe Hunger'"

Ich sagte: "Er sagte: ''A'sthetik'"
Ich sagte: "Er sagte: 'Ästhetik'"

Hämisch rieb er sich die H'a'nde
Hämisch rieb er sich die Hände

H'a''a'slich isn't a German word
Hääslich isn't a German word

since it's really called h'a'sslich
since it's really called hässlich

6
আপনার সমস্ত টেস্টকেসের সক্রিয় উপাদান হ'ল 'A'বা 'a'... যা আমি ভাল টেস্টকেস হিসাবে বিবেচনা করি তা নয়।
— ফাঁস নুন

1
আপনি কি এর সাথে উদাহরণ যুক্ত করতে পারেন 'w'(এর মধ্যে wএকটিও নয় AEIOUaeiou)?
— জিমি 23013

8
ডাইক্রিটিক্যালগুলির সংমিশ্রণের অজানা অবস্থান ছিল , তারপরে অনুমতি দেওয়া হয়েছিল , তারপরে অনুমতি দেওয়া হয়নি । এটি অন্তত 4 টি উত্তর বাতিল করে দিয়েছে। ছি! হিস্হিস! আমি আমার উপনোটকে ডাউনটাতে পরিবর্তন করেছি :(
— ডিজিটাল ট্রমা

1
@ ডিজিটাল ট্রামুমা এর জন্য আমি খুব দুঃখিত।
— রোমান গ্রাফ

4
'q'e'd'
— নাম

উত্তর:


11

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

s=>s.replace(/'[aeiou]'/gi,c=>"ï   ÖÄöä ËÜëüÏ "[c.charCodeAt(1)%15])

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

f=
s=>s.replace(/'[aeiou]'/gi,c=>"ï   ÖÄöä ËÜëüÏ "[c.charCodeAt(1)%15])
i.addEventListener("input",_=>o.innerText=f(i.value))
console.log(f("'A'sthetik")) // Ästhetik
console.log(f("Meinung ist wichtig!")) // Meinung ist wichtig!
console.log(f(`Ich sagte: "Er sagte: 'Ich habe Hunger'"`)) // Ich sagte: "Er sagte: 'Ich habe Hunger'"
console.log(f(`Ich sagte: "Er sagte: ''A'sthetik'"`)) // Ich sagte: "Er sagte: 'Ästhetik'"
console.log(f("Hämisch rieb er sich die H'a'nde")) // Hämisch rieb er sich die Hände
console.log(f("H'a''a'slich isn't a German word")) // Hääslich isn't a German word
console.log(f("since it's really called h'a'sslich")) // since it's really called hässlich
<input id=i><pre id=o>


ব্যাখ্যা

  • s=> "S" প্যারামিটারের মাধ্যমে আর্গুমেন্ট হিসাবে ইনপুট স্ট্রিং গ্রহণ করে বেনামে ফাংশন।
  • s.replace(x,y) "Y" দ্বারা প্রতিস্থাপিত "x" দিয়ে স্ট্রিংটি প্রদান করে।
  • /'[aeiou]'/gi কেস সংবেদনশীল নিয়মিত প্রকাশ যা একক উদ্ধৃতি দ্বারা আবদ্ধ স্বরযুক্ত সমস্ত ঘটনার সাথে মেলে।
  • c=> নিয়মিত প্রকাশের প্রতিটি ম্যাচ প্যারামিটার "সি" এর মাধ্যমে একটি অনামী ফাংশনে পাস করে।
  • "ï ÖÄöä ËÜëüÏ "[n]"Ï ÖÄöä ËÜëüÏ" এর মতো স্ট্রিংয়ের নবম অক্ষর (0 সূচকযুক্ত) প্রদান করে "ï ÖÄöä ËÜëüÏ ".charAt(n)।
  • c.charCodeAt(1)%15 15 দ্বারা বিভক্ত হয়ে "গ" (অর্থাৎ স্বর অক্ষর) এর দ্বিতীয় অক্ষরের বর্ণচিহ্নের বাকী অংশটি পান।

বিকল্প, 40/52 36/48 বাইট (35/47 অক্ষর)

ডায়াক্রিটিক্সের সংমিশ্রণের পূর্বে নিম্নলিখিতটি আমার উত্তর ছিল না (বু-urns!) - এই ফিডলে আরও ভালভাবে দেখা হয়েছে

s=>s.replace(/'([aeiou])'/gi,"$1̈")

তবে, ইটিএইচ প্রোডাকশনগুলি পরামর্শ দেয় যে .normalize()অতিরিক্ত 12 বাইট যুক্ত করার সাথে এটি বৈধ হবে।

s=>s.replace(/'([aeiou])'/gi,"$1̈").normalize()


না, যদি ডায়াক্রিটিক্সের সংমিশ্রণের অনুমতি দেওয়া হয়।
— অ্যাডম

সংমিশ্রণ ডায়রিটিক্স এখন নিষিদ্ধ।
— অ্যাডম

আমি বিশ্বাস করি আপনি .normalize()ফাংশনটির শেষে যুক্ত করে এটি বৈধ করতে পারবেন ।
— ইটিএইচ প্রোডাকশনগুলি

আপনি কি নিশ্চিত যে @ETH প্রোডাকশনস? যদি ডায়াক্রিটিকদের সংমিশ্রণ নিষিদ্ধ করা হয় তবে এগুলি কি কোনও উত্তরে উপস্থিত হওয়া নিষিদ্ধ নয় ?
— শেগি

8

পার্ল 5, 25 বাইট

s/'(\w)'/chr 1+ord$1/age

24 বাইট, প্লাস 1 এর -peপরিবর্তে-e

এটি এই নিয়মের ব্যবহার করে যে "যতক্ষণ না আপনি অক্ষরগুলি সমর্থন করেন ততক্ষণ আপনি কোনও আই / ও কোডপেজ বেছে নিতে পারেন AEIOUaeiouÄËÏÖÜäëïöü'"। এটি /aরেগেক্সগুলিতে পতাকা ব্যবহার করে, যার ফলে \wঅক্ষরগুলি abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789কীভাবে এনকোড করা হয়েছে তা নির্বিশেষে উল্লেখ করতে পারে causes

আমার স্ক্রিপ্টের জন্য নির্বাচিত I / O কোডপেজটি হ'ল:

 1  a
 2  ä
 3  e
 4  ë
 5  i
 6  ï
 7  o
 8  ö
 9  u
10  ü
11  A
12  Ä
13  E
14  Ë
15  I
16  Ï
17  O
18  Ö
19  U
20  Ü
21  '

(আমি এই স্ক্রিপ্টটি পরীক্ষার পরীক্ষাগুলিতে পরীক্ষা করতে পারি না, কারণ এগুলিতে কিছু সত্যই অদ্ভুত অক্ষর অন্তর্ভুক্ত রয়েছে t))


আমাকে তিনটি বাইট সংরক্ষণ করার জন্য গ্রিমিকে ধন্যবাদ । এর আগে, আমার কাছে ছিল s/'([a-z])'/chr 1+ord$1/gie(যা এনকোডিং এবং) আকর্ষণীয় সত্যটি ব্যবহার করেছে যা [a-z]পার্লের বিশেষ-বিশেষায়িত abcdefghijklmnopqrstuvwxyzযা এনকোডিংয়ের সাথে কোনও মিল নেই match আমার আগের উত্তরটি হ'ল, আইএমও, আরও আকর্ষণীয়, তবে এইটি আরও খাটো, হ্যাক কী, আমি তা গ্রহণ করব।


1
আমি এটিকে পোস্ট করার আগে "ডিফল্টরূপে নিষিদ্ধ করা লুফোলগুলি" তালিকাটি সাবধানতার সাথে পরীক্ষা করেছিলাম এবং একটি কোডপেজ আবিষ্কার তাদের মধ্যে ছিল না। এটি, আরও বিশেষত যে প্রশ্নটি "যে কোনও আই / ও কোডপেজ" ব্যবহারের আমন্ত্রণ জানিয়েছিল, এই উত্তরটির অনুমতি দেয় বলে মনে হচ্ছে। এবং তারপরে a-zকৌশলটি উত্তরটিকে কেবল একটি প্রতারণার পরিবর্তে আকর্ষণীয় করে তোলে। (আইএমও, যাইহোক।)
— এমএস 210

3
এটি এমন ধরণের কৌশল যা একবারে কেবল মজার, তবে আমি বিশ্বাস করি আপনি এটির প্রথম ব্যবহার করেন তাই এটি কার্যকর হয় (=
— গ্রিমি

1
আপনি ব্যবহার করে 3 বাইট বাঁচাতে পারে \wপরিবর্তে [a-z], সেইসাথে /aপরিবর্তে /i। যদি "/ a" সংশোধক কার্যকর হয়, \wতারা কীভাবে এনকোড করা হচ্ছে তা নির্বিশেষে [a-zA-Z0-9_] অক্ষরের সাথে মেলে।
— গ্রিমি

@ গ্রিমি, ধন্যবাদ! আমি সম্পাদনা করব ....
— msh210


4

জাপট , 29 বাইট

r"'%v'"@"ï   ÖÄöä ËÜëüÏ "gXc1

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

ব্যাখ্যা

r"'%v'"@"ï   ÖÄöä ËÜëüÏ "gXc1

r"'%v'"@                       // Replace each match X of /'<vowel>'/ in the input with
        "ï   ÖÄöä ËÜëüÏ "g     //   the character in this string at index
                          Xc1  //     X.charCodeAt(1).
                               //   Values larger than the length of the string wrap around,
                               //   so this is effectively equal to " ... "[n%15].
                               // Implicit: output result of last expression

1
ডায়াক্রিটিক্সের সমন্বয় ব্যবহার করা বিতর্কিত।
— ফাঁস নুন

আমাকে এটি মারধর। আপনার সমাধানটি আমার চেয়ে অনেক খাটো ... ভাল হয়েছে।
— লুক

এই প্রশ্নটির জন্য বা সাধারণভাবে @ লেকইনন বিতর্কিত?
— ডিজিটাল ট্রমা

এই প্রশ্নের জন্য বিতর্কিত কারণ আপনি এটিকে মন্তব্যগুলিতে উত্থাপিত করেছিলেন তবে এটির কোনও সমাধান করা হয়নি।
— লিকি নুন

@ অ্যাডম আপনাকে 38 সেকেন্ডের মধ্যে
— মারবে

4

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

s=>s.replace(/'.'/g,c=>"äëïöüÄËÏÖÜ"['aeiouAEIOU'.indexOf(c[1])]||c)

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

উক্ত বর্ণের মধ্যে সমস্ত অক্ষরকে সংশ্লিষ্ট উমলাটেড চরিত্রের সাথে প্রতিস্থাপন করুন, বা পরিবর্তিত হওয়া অক্ষরের গ্রুপে না থাকলে নিজেই মেলে।


3

জেলি , 36 বাইট

œṣ⁹Ṫ¤j
“.ạẏụ’D196;+\Ọż⁾''jЀØc¤;@Wç/

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

এটি জেলির পক্ষে বেশ জটিল বলে মনে হচ্ছে!

কিভাবে?

দ্রষ্টব্য: যেহেতু অক্ষরগুলি কোড-পৃষ্ঠায় নেই, তবে ইউনিকোডের একটি বাইটের সীমার মধ্যে রয়েছে আমি মনে করি সেগুলি অবশ্যই অর্ডিনালগুলি থেকে তৈরি করা উচিত, তাই আমার কাছে রয়েছে।

œṣ⁹Ṫ¤j - Link 1, Replace: char list S [...], list R [char T, char list F]
œṣ     - split S at sublists equal to:
    ¤  -   nilad followed by link(s) as a nilad:
  ⁹    -     link's right argument, R
   Ṫ   -     tail - yield char list F and modify R to become [T]
     j - join with R (now [T])
       - all in all split S at Rs and join back up with [T]s.

“.ạẏụ’D196;+\Ọż⁾''jЀØc¤;@Wç/ - Main link: char list S
       196;                   - 196 concatenate with:
“.ạẏụ’                        -   base 250 literal 747687476
      D                       -   to decimal list [7,4,7,6,8,7,4,7,6]
           +\                 - cumulative reduce with addition: [196,203,207,214,220,228,235,239,246,252]
             Ọ                - cast to characters: ÄËÏÖÜäëïöü
                       ¤      - nilad followed by link(s) as a nilad:
               ⁾''            -   literal ["'", "'"]
                     Øc       -   vowel yield: AEIOUaeiou
                  jЀ         -   join mapped:  ["'A'", "'E'", ...]
              ż               - zip together
                          W   - wrap S in a list
                        ;@    - concatenate (swap @rguments)
                           ç/ - reduce with last link (1) as a dyad
                              - implicit print

3

ভি , 24 বাইট

Óã'¨[aeiou]©'/±:
éiD@"

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

Hexdump:

00000000: d3e3 27a8 5b61 6569 6f75 5da9 272f 160b  ..'.[aeiou].'/..
00000010: b13a 0ae9 6944 4022                      .:..iD@"

এটি আমার ভিম উত্তরের প্রত্যক্ষ অনুবাদ, যাতে আমি সমস্ত গল্ফকারী ভাষাগুলি হারাতে পারি। : P: P



1

/// , 67 বাইট

/~/'\///`/\/\/~/'A~Ä`E~Ë`I~Ï`O~Ö`U~Ü`a~ä`e~ë`i~ï`o~ö`u~ü/

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

এটি একক উদ্ধৃতি ( 'A') দ্বারা বিভক্ত বিন্দুযুক্ত অক্ষরগুলি বিন্দু হিসাবে একই অক্ষরের সাথে একক উদ্ধৃতি ( ) ছাড়াই প্রতিস্থাপন করে কাজ করে Ä। এই একটি একক প্রতিস্থাপন (গলফ আগে) এই মত দেখায়: /'A'/Ä/।

গল্ফটি দুটি সাধারণ ঘটনা নেয় //এবং '/এটি প্রতিস্থাপন হিসাবে ব্যবহার করে।


1

সুইফট - 201 বাইট

import Foundation;func g(s:String){var e=s;var r="aeiouAEIOUäëïöüÄËÏÖÜ".characters.map{String($0)};for i in r[0...9]{e=e.replacingOccurrences(of:"'\(i)'",with:r[r.index(of:i)!+10])};print(e)}

ব্যবহার: g("'A'sthetik") // => Ästhetik


1
characters.map{blah blah}এবং replacingOccurrences()সত্যিই
— মজাটি

1

এপিএল (ডায়ালগ) , 53 বাইট

(v←'''[AEIOUaeiou]''')⎕R{'  ÄËÏÖÜäëïöü'[v⍳2⊃⍵.Match]}

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

উদ্ধৃত স্বরবর্ণগুলিতে নিম্নলিখিত ফাংশনটি প্রয়োগ করতে পিসিআর আর আর এপাসেল (RegEx কে v হিসাবে সংরক্ষণ করা ) ব্যবহার করুন:

{ বেনামে ফাংশন

 ' ÄËÏÖÜäëïöü'[… ] এর সাথে স্ট্রিংটি সূচিত করুন (দুটি জায়গাগুলির সাথে সংশ্লিষ্ট '[):

  ⍵.Match ম্যাচিং স্ট্রিং

  2⊃ দ্বিতীয় বর্ণটি (স্বর) বেছে নিন

  v⍳ সূচক এটি বনাম

}



1

এসওজিএল , 43 35 (ইউটিএফ -8) বাইট

L∫:ÆW ':h++;"äëïöü”:U+Wŗ

ব্যাখ্যা:

L∫                        repeat 10 times, pushing current iteration (0-based)
  :                       duplicate the iteration
   ÆW                     get the index (1-based) in "aeiouAEIOU"
      ':h++               quote it
           ;              put the copy (current iteration) ontop
            "äëïöü”       push "äëïöü"
                   :      duplicate it
                    U     uppercase it
                     +    join together, resulting in "äëïöüÄËÏÖÜ"
                      W   get the index (1-based) in it
                       ŗ  replace [in the input, current char from "aeiouAEIOU" with
                          the corresponding char in "äëïöüÄËÏÖÜ"

3
হেই, কেউ ভাবতে পারেন যে ̈+এটি এসওজিএল-এর একটি ফাংশন।
— অ্যাডাম

সংমিশ্রণ ডায়রিটিক্স এখন নিষিদ্ধ।
— অ্যাডাম

1

05 এ বি 1 ই , 30 29 24 বাইট

-6 বাইট ধন্যবাদ এমিগিনার কাছে

žMDu«S''«''ì"äëïöü"Du«S:

05AB1E äëïöüএর কোড পৃষ্ঠাতে স্বাচ্ছন্দ্যযুক্ত অক্ষর রয়েছে।

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

(পুরানো কোড)

žMDu«Svy''.ø})"äëïöü"Du«¹ŠS:

ব্যাখ্যা (পুরানো):

žM                             Push aeiou                    ['aeiou']
  D                            Duplicate                     ['aeiou', 'aeiou']
   u                           Uppercase                     ['aeiou', 'AEIOU']
    «                          Concatenate                   ['aeiouAEIOU']
     vy                        For each...
       ''                        Push '
         .ø                      Surround a with b (a -> bab)
           }                   End loop
            )                  Wrap stack to array           [["'a'", "'e'", "'i'", "'o'", "'u'", "'A'", "'E'", "'I'", "'O'", "'U'"]]
             "äëïöü"           String literal.               [["'a'", "'e'", "'i'", "'o'", "'u'", "'A'", "'E'", "'I'", "'O'", "'U'"], 'äëïöü']
                    Du«        Duplicate, uppercase, concat  [["'a'", "'e'", "'i'", "'o'", "'u'", "'A'", "'E'", "'I'", "'O'", "'U'"], 'äëïöüÄËÏÖÜ']
                       ¹       Push first input
                        Š      Push c, a, b                  ["'A'sthetik", ["'a'", "'e'", "'i'", "'o'", "'u'", "'A'", "'E'", "'I'", "'O'", "'U'"], 'äëïöüÄËÏÖÜ']
                          S    Convert to char list          ["'A'sthetik", ["'a'", "'e'", "'i'", "'o'", "'u'", "'A'", "'E'", "'I'", "'O'", "'U'"], ['ä', 'ë', 'ï', 'ö', 'ü', 'Ä', 'Ë', 'Ï', 'Ö', 'Ü']]
                           :   Replace all                   ['Ästhetik']
                               Implicit print

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


আপনি প্রতিস্থাপন করতে পারে .Áসঙ্গে Š।
— এমিগানা

আপনি আরও কিছু বাইট সংরক্ষণ করতে পারেনžMDu«S''«''ì"äëïöü"Du«S:
— এমিগিনা

@ এমিগনা আবার ধন্যবাদ।
— Okx

এছাড়াও আপনি প্রয়োজন হবে না Iশুরুতে :)
— Emigna

1

পাইথন 3.6, 98 92 টি অক্ষর

import re;a=lambda i,p="'([AEIOUaeiou])'":re.sub(p,lambda x:'ÄËÏÖÜäëïöü'[p.index(x[1])-3],i)

এটি একটি ফাংশন, সম্পূর্ণ প্রোগ্রাম নয়।

পাঠযোগ্যতার জন্য ফর্ম্যাট করা:

import re

a = lambda i, p="'([AEIOUaeiou])'":\
    re.sub(p, lambda x: 'ÄËÏÖÜäëïöü'[p.index(x[1]) - 3], i)

আরও গল্ফ করার চতুর টিপসের জন্য @ ভ্যালিউইঙ্ককে ধন্যবাদ


আমার জন্য দৌড়াচ্ছে না। একটি টাইপররারের সাথে থামছে।
— সম্পূর্ণমানবিক

আপনি কি নিশ্চিত? মনে হচ্ছে এটি আমার জন্য কাজ করছে। আপনি aযে স্ট্রিংটি প্রতিস্থাপন করতে চান তার সাথে আপনাকে ফাংশনটি কল করতে হবে।
— নম্বরমানিয়াক


1
পাইথন ডক্স রিপোর্ট করে যা match.__getitem__(g)পাইথন ৩.6-এ নতুন তাই এটি সম্ভবত আপনার শিরোনামে নির্দিষ্ট করা উচিত। এছাড়াও, আপনি যদি নিজের রেজেক্সটি আপনার কাছে '([AEIOUaeiou])'পরিবর্তন x[0][1]করেন তবে পরিবর্তে পরিবর্তে x[1]এবং ব্যবহার করে একটি বাইট সংরক্ষণ করুন । -3-2
— মান কালি

1
আসলে, import re;a=lambda i,p="'([AEIOUaeiou])'":re.sub ...আপনি আরও কিছুটা ওভারহেড কেটে ফেলেছেন যেহেতু আর কোনও returnবিবৃতি প্রয়োজন নেই !
— মান কালি

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