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


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{'  ÄËÏÖÜäëïöü'[v2⊃⍵.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.