Nhiều chuỗi


29

Điều này được lấy cảm hứng từ một chức năng tôi mới thêm vào ngôn ngữ của mình Thêm ++ . Do đó, tôi sẽ gửi câu trả lời ngắn trong Add ++ nhưng tôi sẽ không chấp nhận nếu nó thắng (điều đó sẽ không công bằng)

Bạn không ghét nó khi bạn có thể nhân số nhưng không phải chuỗi? Vì vậy, bạn nên sửa nó, phải không?

Bạn phải viết một hàm hoặc chương trình đầy đủ lấy hai chuỗi không trống làm đầu vào và đầu ra phiên bản nhân của chúng.

Làm thế nào để bạn nhân chuỗi? Tôi sẽ nói với bạn!

Để nhân hai chuỗi, bạn lấy hai chuỗi và so sánh từng ký tự. Ký tự có điểm mã cao nhất sau đó được thêm vào đầu ra. Nếu chúng bằng nhau, chỉ cần thêm ký tự vào đầu ra.

Các chuỗi không được đảm bảo có độ dài bằng nhau. Nếu độ dài khác nhau, độ dài của chuỗi cuối cùng là độ dài của chuỗi ngắn nhất. Đầu vào sẽ luôn là chữ thường và có thể chứa bất kỳ ký tự nào trong phạm vi ASCII có thể in ( 0x20 - 0x7E), ngoại trừ chữ in hoa.

Bạn có thể xuất ra ở bất kỳ định dạng hợp lý nào, chẳng hạn như chuỗi, danh sách, v.v ... Hãy nhạy cảm, số nguyên không phải là cách hợp lý để xuất trong thử thách này.

Với đầu vào của hello,world!, đây là cách nó hoạt động

hello,
world!

w > h so "w" is added ("w")
o > e so "o" is added ("wo")
r > l so "r" is added ("wor")
l = l so "l" is added ("worl")
d < o so "o" is added ("worlo")
! < , so "," is added ("worlo,")

Vì vậy, đầu ra cuối cùng cho hello,world!sẽ là worlo,!

Nhiều trường hợp kiểm tra

(không có bước)

input1
input2 => output

programming puzzles & code golf!?
not yet graduated, needs a rehaul => prtgyetmirgduuzzlesneedsde rolful

king
object => oing

blended
bold => boln

lab0ur win.
the "super bowl" => the0usuwir.

donald j.
trumfefe! => trumlefj.

Đây là một để mã ngắn nhất chiến thắng! Luok!


35
Đây là tối đa nguyên tố của chuỗi, phải không? Điều đó dường như không giống như nhân lên.
xnor

5
Nitpick: PPCG đã tốt nghiệp, chúng tôi chưa có thiết kế mới.
Dennis

Câu trả lời:


53

Haskell, 11 byte

zipWith max

Hãy thử trực tuyến!

Không có gì nhiều để giải thích.


7
Và tôi nghĩ Mathicala có những phần mềm lạ
Ông Xcoder

@ Mr.Xcoder Mathematica có zipWith, nó được gọi là MapThread
michi7x7

2
@ Mr.Xcoder thực sự zipWithkhông quá xa lạ. Đó là một nguyên thủy chức năng khá phổ biến. Ý tưởng "nén" hai danh sách cùng xuất hiện trong nhiều vấn đề và một khi bạn làm điều đó, bạn thường muốn áp dụng một số chức năng cho các mục 2 phần tử kết quả, do đó phần "với".
Giô-na


6

Perl 6 , 22 byte

{[~] [Zmax] @_».comb}

Như một phần thưởng, nó chấp nhận bất kỳ số lượng nhân nào, không chỉ hai.


6

Japt , 16 byte

ñl g îUy ®¬ñ oÃq

Kiểm tra nó trực tuyến! Lấy đầu vào là một mảng của hai chuỗi.

Thiếu min và max dựng sẵn làm tổn thương Japt ở đây, nhưng nó vẫn có thể đạt được một số điểm khá ...

Giải trình

 ñl g îUy ®   ¬ ñ oà q
Uñl g îUy mZ{Zq ñ o} q
                        // Implicit: U = input array     ["object", "king"]
       Uy               // Transpose the strings of U.   ["ok", "bi", "jn", "eg", "c ", "t "]
          mZ{      }    // Map each string Z to
             Zq ñ o     //   the larger of the two chars. (Literally Z.split().sort().pop())
                        //                               ["o", "i", "n", "g", "c", "t"]
                     q  // Join into a single string.    "oingct"
Uñl g                   // Sort the two input strings by length and take the shorter.
      î                 // Trim the previous result to this length.
                        //            "king"î"oingct" -> "oing"
                        // Implicit: output result of last expression

6

Thạch , 5 byte

żœ-"«

Hãy thử trực tuyến!

Làm thế nào nó hoạt động

żœ-"«  Main link. Arguemts: s, t (strings)

ż      Zipwith; form all pairs of corresponding characters from s and t.
       If one of the strings is longer than the other, its extra characters are 
       appended to the array of pairs.
    «  Dyadic minimum; get all minima of corresponding characters.
       This yields the characters themselves for unmatched characters.
 œ-"   Zipwith multiset subtraction; remove a single occurrence of the minimum from
       each character pair/singleton.
       This yields the maximum for pairs, but an empty string for singletons.

Thí dụ

Đặt s = pha trộnt = đậm .

żnăng suất ["bb", "lo", "el", "nd", 'd', 'e', 'd']. Ba yếu tố cuối cùng là nhân vật.

«là vector hóa, tối thiểu dyadic, vì vậy nó mang lại ['b', 'l', 'e', 'd', 'd', 'e', 'd'].

œ-"loại bỏ chính xác một lần xuất hiện của ký tự thứ n trong mảng thứ hai khỏi chuỗi thứ n / ký tự trong mảng thứ nhất, mang lại . là nguyên tử trừ đa bội , và nhanh chóng làm cho nó vectơ.["b", "o", "l", "n", "", "", ""]œ-"

Khi được in, điều này chỉ đơn giản là đọc boln .


Vì vậy, đây là nén, sau đó lấy sự khác biệt nhiều thứ của một cái gì đó, sau đó có một số trích dẫn kép đẹp có ý nghĩa bí ẩn, và cuối cùng là tối thiểu. Đẹp ... Giải thích, xin vui lòng? : D
Leo

1
Tôi đã thêm một ví dụ làm việc.
Dennis


6

Alice , 8 byte

/oI\
@m+

Hãy thử trực tuyến!

Giải trình

Alice cũng có toán tử này (mà tôi gọi là siêu bội ) nhưng nó không giới hạn đầu ra ở độ dài của chuỗi ngắn hơn (thay vào đó, các ký tự còn lại của chuỗi dài hơn được nối thêm). Tuy nhiên, nó cũng có một toán tử để cắt ngắn hơn hai chuỗi dài hơn độ dài của chuỗi ngắn hơn.

/   Reflect to SE, switch to Ordinal. The IP bounces diagonally up and down
    through the code.
m   Truncate, doesn't really do anything right now.
I   Read a line of input.
    The IP bounces off the bottom right corner and turns around.
I   Read another line of input.
m   Truncate the longer of the two input lines to the length of the shorter.
+   Superimpose: compute their elementwise maximum. 
o   Output the result.
@   Terminate the program.

6

Võng mạc , 28 byte

{O^`
G`.
^.+$

M!\*`^.
Rm`^.

Hãy thử trực tuyến!

Giải trình

{O^`

Lệnh {cho Retina chạy toàn bộ chương trình trong một vòng lặp cho đến khi nó không thay đổi chuỗi làm việc.Olàm cho đây là một giai đoạn sắp xếp sắp xếp các dòng không trống theo mặc định. Các ^tùy chọn đảo ngược kết quả. Vì vậy, trong thực tế, chúng ta có được một loại ngược của hai dòng nếu chúng không trống, đặt dòng có ký tự lớn hơn ở trên cùng.

G`.

Hủy các dòng trống nếu có bất kỳ.

^.*$

Nếu chỉ còn một dòng, một trong các dòng trống và chúng tôi cũng xóa một dòng khác để dừng quá trình.

M!\*`^.

Rất nhiều cấu hình đang diễn ra ở đây. Điều này khớp với ( M) ký tự đầu tiên trong chuỗi làm việc ( ^.), trả về nó ( !), in nó mà không có linefeed ( \) và sau đó hoàn nguyên chuỗi làm việc về giá trị trước đó (* ). Nói cách khác, chúng ta chỉ cần in ký tự đầu tiên của chuỗi làm việc (là ký tự hàng đầu tối đa) mà không thực sự thay đổi chuỗi.

Rm`^.

Cuối cùng, chúng tôi loại bỏ ký tự đầu tiên khỏi mỗi dòng, để lần lặp tiếp theo xử lý ký tự tiếp theo.


Khi bạn nhận xét về câu trả lời nguyên khối của tôi cao bao nhiêu, tôi nhận ra rằng câu trả lời của tôi cho câu hỏi này quá dài và có lẽ tôi đã chuyển đổi không hiệu quả. Sau khi xem xét đề xuất chuyển vị của bạn hoạt động như thế nào, tôi quyết định rằng rốt cuộc nó không phù hợp với câu hỏi này. Sau đó, tôi đã đưa ra một cách tiếp cận mới giúp tôi tiết kiệm được 19 byte ... và sau đó cuộn xuống để thấy rằng bạn đã đưa ra một phiên bản tốt hơn ...
Neil

Bạn có thể lưu 3 byte vì điều G`.này là không cần thiết, mặc dù điều này không tạo ra một dòng mới bổ sung mà bạn có thể loại bỏ bằng cách sử dụng ^.+¶$hoặc bằng tiền tố a \để bắt đầu câu trả lời.
Neil

@Neil điểm tốt. Tôi cũng có thể sử dụng cam kết mới nhất (chưa có trên TIO và có lẽ sẽ không tồn tại trong một thời gian) khi tôi đã thực hiện in mà không theo dõi dòng mặc định (sau đó tôi cũng có thể bỏ cái khác \).
Martin Ender


6

JavaScript (ES6), 47 45 byte

f=
(a,b)=>a.replace(/./g,(c,i)=>c>b[i]?c:[b[i]])
<div oninput=o.textContent=f(a.value,b.value)><input id=a><input id=b><pre id=o>

Thuận tiện c>b[i]trả lại sai quá khứ cuối b. Chỉnh sửa: Đã lưu 2 byte nhờ @ETHproductions.


Ở đây trong điện thoại di động của tôi rằng mã trên không thể được thực thi. Trong máy tính để bàn PC, các ví dụ trên tôi nói có thể chạy ok, nhưng không cho phép thay đổi đầu vào cho các chức năng ... Tại sao không sử dụng Tio thay thế?
RosLuP

@RosLuP Khi đầu vào đơn giản (trong 2 trường hợp này) Tôi thích sử dụng Stack Snippet, điều này thường giúp dễ dàng thay đổi đầu vào và đầu ra cũng tự động cập nhật.
Neil


5

Toán học, 78 byte

FromCharacterCode[Max/@Thread[#~Take~Min[Length/@x]&/@(x=ToCharacterCode@#)]]&

Có một câu trả lời khác trong Mathicala rồi. Câu trả lời này lấy đầu vào là một danh sách các chuỗi, vì vậy /@có thể được sử dụng #thay vì {##}. Và chúng ta chỉ có thể Mapđặt tên hàm dài trên đối tượng thay vì gán nó cho các biến. (trên thực tế, mỗi tên biểu tượng tích hợp Mathicala được sử dụng nhiều nhất một lần trong hàm)


5

Java 8, 124 120 117 63 byte

a->b->{for(int i=0;;i++)System.out.print(a[i]>b[i]?a[i]:b[i]);}

-4 byte nhờ @ Khaled.K .
-3 byte nhờ @Jakob .

Đầu vào là hai mảng ký tự và dừng lại với một ArrayIndexOutOfBoundsException.

Giải trình:

Hãy thử nó ở đây.

a->b->{                       // Method with two char-array parameters and no return-type
  for(int i=0;;i++)           //  Loop `i` from 0 up indefinitely (until an error is given)
    System.out.print(         //   Print:
      a[i]>b[i]?a[i]:b[i]);}  //    The character that has the highest unicode value

4

C #, 81 78 byte

a=>b=>{var s="";try{for(int q=0;;q++)s+=a[q]>b[q]?a[q]:b[q];}catch{}return s;}

C # có tiềm ẩn charđể intchuyển đổi (vì một charthực sự là một intbên dưới) đó là tốt đẹp, và thay vì tìm kiếm chuỗi ngắn nhất chỉ cần cố gắng cho đến khi thất bại


1
Đánh tôi đi! Tuy nhiên, lưu một byte với currying a=>b=>bằng cách biên dịch thành a Func<string, Func<string, string>>. Bạn có thể loại bỏ các dấu ngoặc quanh vòng lặp for để lưu 2 byte.
TheLethalCoder

Lưu ý bên: C# has implicit char to int conversionlà đúng bởi vì a charlà một intbên dưới.
TheLethalCoder

@TheLethalCoder: Không hoàn toàn. sizeof(int) == 4nhưng sizeof(char) == 2.
đệ quy

4

MATL , 8 byte

otX>cwA)

Đầu vào là một mảng ô của chuỗi, ở định dạng {'abcd' 'efg'}

Hãy thử trực tuyến!

Như một bên, điều này cũng hoạt động cho nhiều hơn hai chuỗi .

Giải trình

Xem xét đầu vào {'blended' 'bold'}. Ngăn xếp được hiển thị lộn ngược, với các yếu tố gần đây hơn bên dưới.

o    % Implicitly input a cell array of strongs. Convert to numeric
     % vector of code points. This right-pads with zeros if needed
     %   STACK: [98 108 101 110 100 101 100;
                 98 111 108 100   0   0   0]
tX>  % Duplicate. Maximum of each column
     %   STACK: [98 108 101 110 100 101 100;
                 98 111 108 100   0   0   0],
                [98 111 108 110 100 101 100]
c    % Convert to char
     %   STACK: [98 108 101 110 100 101 100;
                 98 111 108 100   0   0   0],
                'bolnded'
w    % Swap
     %   STACK: 'bolnded'
                [98 108 101 110 100 101 100;
                 98 111 108 100   0   0   0]
A    % All: gives true (shown as 1) for columns containing only nonzeros
     %   STACK: 'bolnded'
                [1 1 1 1 0 0 0]
)    % Use as logical index (mask). Implicitly display
     %   STACK: 'boln'

4

R, 103 byte

Mã số:

n=min(sapply(y<-strsplit(scan(,"",sep="\n"),""),length));cat(mapply(max,el(y)[1:n],y[[2]][1:n]),sep="")

Các trường hợp thử nghiệm:

> n=min(sapply(y<-strsplit(scan(,"",sep="\n"),""),length));cat(mapply(max,el(y)[1:n],y[[2]][1:n]),sep="")
1: programming puzzles & code golf!?
2: not yet graduated, needs a rehaul
3: 
Read 2 items
prtgretmirgduuzzlesneedsde rolful
> x <- scan(,"",sep=NULL)
1: asd asd 
3: 
Read 2 items
> n=min(sapply(y<-strsplit(scan(,"",sep="\n"),""),length));cat(mapply(max,el(y)[1:n],y[[2]][1:n]),sep="")
1: king
2: object
3: 
Read 2 items
oing
> n=min(sapply(y<-strsplit(scan(,"",sep="\n"),""),length));cat(mapply(max,el(y)[1:n],y[[2]][1:n]),sep="")
1: lab0ur win.
2: the "super bowl"
3: 
Read 2 items
the0usuwir.

Huh? Max hoạt động như vậy? TIL
JAD



4

V , 28, 24 , 21 byte

Í./&ò
dd{JdêHPÎúúx
Íî

Hãy thử trực tuyến!

Hexdump:

00000000: cd2e 2f26 f20a 6464 7b4a 64ea 4850 cefa  ../&..dd{Jd.HP..
00000010: fa78 0acd ee                             .x...

Ba byte được lưu nhờ vào @ nmjcman101!

Giải trình:

Í             " Globally substitute:
 .            "   Any character
  /           " With:
   &          "   That character
    ò         "   And a newline
dd            " Delete this line
  {           " Move to the first empty line
   J          " Delete this line
    dê        " Columnwise delete the second word
      HP      " Move to the first line, and paste the column we just deleted
        Î     " On every line:
         úú   "   Sort the line by ASCII value
           x  "   And delete the first character
Í             " Remove all:
 î            "   Newlines

dGcần thiết? Không phải tất cả các dòng mới được gỡ bỏ bằng mọi cách Íî?
nmjcman101

@ nmjcman101 Cần thiết trong trường hợp các chuỗi có độ dài khác nhau.
DJMcMayhem

3

CJam , 12 byte

q~z{1/~e>o}%

Đầu vào là danh sách hai chuỗi. Chương trình thoát với một lỗi (sau khi tạo đầu ra đúng) nếu hai chuỗi có độ dài khác nhau.

Hãy thử trực tuyến!

Giải trình

q~              e# Read input and evaluate
  z             e# Zip: list of strings of length 2, or 1 if one string is shorter
   {      }%    e# Map this block over list
    1/          e# Split the string into array of (1 or 2) chars
      ~         e# Dump the chars onto the stack
       e>       e# Maximum of two chars. Error if there is only one char
         o      e# Output immediately, in case the program will error

3

Clojure, 31 byte

#(map(comp last sort list)% %2)

Yay cho thành phần chức năng :) Trả về một chuỗi các ký tự thay vì một chuỗi, nhưng chúng chủ yếu hoạt động theo cùng một cách trong Clojure trừ khi in hoặc khớp regex.

Đáng buồn là maxkhông làm việc với các nhân vật.


maxkhông làm việc, nhưng max-keykhông. #(map(partial max-key int)% %2)Đó là số byte chính xác, mặc dù.
madstap

Ôi tuyệt, tôi đã quên mất điều đó. Rất đơn giản hơn nhiều so với ví dụ (ffirst (sort-by second ...).
NikoNyrh

3

Javascript (ES2015), 66 63 49 byte

a=>b=>[...a].map((c,i)=>c>b[i]?c:b[i]||'').join``

Giải trình:

a=>b=>                       // Function with two string parameters
  [...a]                     // Split a into array of characters
    .map((c, i) =>           // Iterate over array
      c>b[i] ? c : b[i]||'') //   Use the character with the larger unicode value until the end of the larger string
    .join``                  // Join the array into a string

Những phiên bản trước:

//ES2015
a=>b=>[...a].map((c,i)=>c>b[i]?c:b[i]).slice(0,b.length).join``    //63
a=>b=>a.split``.map((c,i)=>c>b[i]?c:b[i]).slice(0,b.length).join`` //66
a=>b=>a.split``.map((c,i)=>c>b[i]?c:b[i]).slice(0,Math.min(a.length,b.length)).join``   //85
a=>b=>{for(i=-1,c='';++i<Math.min(a.length,b.length);)c+=a[i]>b[i]?a[i]:b[i];return c}  //86
a=>b=>{for(i=-1,c='';++i<Math.min(a.length,b.length);)c+=a[d='charCodeAt'](i)>b[d](i)?a[i]:b[i];return c}   //105
a=>b=>a.split``.map((c,i)=>c[d='charCodeAt']()>b[d](i)?c:b[i]).slice(0,Math.min(a.length,b.length)).join``  //106

//With array comprehensions
a=>b=>[for(i of a.split``.map((c,i)=>c>b[i]?c:b[i]))i].slice(0,b.length).join``                             //79
a=>b=>[for(i of a.split``.map((c,i)=>c>b[i]?c:b[i]))i].slice(0,Math.min(a.length,b.length)).join``          //98
a=>b=>[for(i of ' '.repeat(Math.min(a.length,b.length)).split``.map((_,i)=>a[i]>b[i]?a[i]:b[i]))i].join``   //105
a=>b=>[for(i of Array.apply(0,Array(Math.min(a.length,b.length))).map((_,i)=>a[i]>b[i]?a[i]:b[i]))i].join`` //107
a=>b=>[for(i of a.split``.map((c,i)=>c[d='charCodeAt']()>b[d](i)?c:b[i]))i].slice(0,Math.min(a.length,b.length)).join``        //119
a=>b=>[for(i of ' '.repeat(Math.min(a.length,b.length)).split``.map((_,i)=>a[d='charCodeAt'](i)>b[d](i)?a[i]:b[i]))i].join``   //124
a=>b=>[for(i of Array.apply(0,Array(Math.min(a.length,b.length))).map((_,i)=>a[d='charCodeAt'](i)>b[d](i)?a[i]:b[i]))i].join`` //127

Chào mừng đến với PPCG! Bài đăng đầu tiên rất hay!
Rɪᴋᴇʀ

3

Võng mạc , 55 36 byte

^
¶
{O`¶.*
}`¶.(.*)¶(.)
$2¶$1¶
1!`.*

Hãy thử trực tuyến! Giải thích: Một dòng có tiền tố để giữ kết quả. Trong khi cả hai chuỗi vẫn có các ký tự còn lại, các đầu vào được sắp xếp và ký tự đầu có điểm mã cao nhất được chuyển đến kết quả trong khi ký tự đầu khác bị xóa. Cuối cùng kết quả được in.


3

Husk , 2 byte

z▲

Hãy thử trực tuyến!

"Ungolfed" / Giải thích

Làm cho việc sử dụng zip fđó cắt ngắn danh sách ngắn hơn để luôn có hai đối số cho f, ví dụ zip f [1,2] [3,4,5] == zip f [1,2] [3,4] == [f 1 3, f 2 4]:

z   -- zip the implicit lists A,B with  - e.g. "ab" "bcd" (lists of characters)
 ▲  -- maximum                          -      [max 'a' 'b', max 'b' 'c']
    -- implicitly print the result      -      "bc"


2

PowerShell, 75 byte

-join(1..(($a,$b=$args)|sort l*)[0].length|%{(,$a[$_-1],$b[$_-1]|sort)[1]})
#            ^input array unpack
#       ^string index generation offset by 1
#                         ^sort by length property, so output length matches shorter input
#                                           ^loop over indices
#                                       max of the two characters^
# ^output join

Lưu dưới dạng tệp .ps1 và chạy

PS C:\> .\Get-MultipliedString.ps1 'hello,' 'world!'
worlo,

Trước đây, 78 byte:

$i=0;-join$(while(($a=$args[0][$i])-and($b=$args[1][$i++])){($a,$b)[$b-gt$a]})

2

J, 25 byte

>./&.(a.&i.)@(<.&#{."1,:)

giải trình

một nửa số byte đi đến giải quyết đảm bảo cả hai đầu vào có độ dài đầu vào ngắn hơn (rất muốn thấy sự cải thiện trên phần này, nếu có ai có):

(<.&#{."1,:)

<.&#là mức tối thiểu của hai độ dài và {."1,:lấy nhiều ký tự từ cả hai hàng của bảng 2 hàng bao gồm chuỗi bên trái xếp chồng lên nhau trên cùng bên phải.

>./&.(a.&i.)

Sử dụng động từ Dưới &.để chuyển đổi từng ký tự thành chỉ mục ascii của nó, lấy tối đa hai số và sau đó chuyển đổi lại thành ký tự.

Hãy thử trực tuyến!


1
21 byte[:>./&.(3&u:)<.&#$&>;
dặm

@miles, sự kết hợp tao nhã giữa xe lửa và sự kết hợp - tôi cần sử dụng thủ thuật đó nhiều hơn để tránh parens. cũng u:là một TIL cho tôi.
Giô-na

2

Bộ sưu tập Java 8 + Eclipse, 70 64 byte

a->b->a.zip(b).collect(p->(char)Math.max(p.getOne(),p.getTwo()))

abcả hai MutableList<Character>từ bộ sưu tập nhật thực.


2

Thêm ++ , 8 byte

D,f,@@,^

Hãy thử trực tuyến!

Trong các phiên bản 0,4 đến 1,11, ^số mũ của hai số hoặc "nhân" hai chuỗi, tùy thuộc vào loại đối số.


Điều này trái với tinh thần của môn đánh gôn, để đăng một câu hỏi khi biết rằng ngôn ngữ của bạn (mà không ai khác sử dụng) có tích hợp giúp nó trở thành độc quyền. Rất may, sự đồng nhất của Jelly lại chiến thắng.
FlipTack

12
@FlipTack bạn đã đọc dòng đầu tiên của câu hỏi? Ngay cả khi đây là 0 byte, nó sẽ không thắng.
caird coinheringaahing

1
@StephenS Có vẻ như tính năng này đã truyền cảm hứng cho thử thách chứ không phải ngược lại. Nhãn không cạnh tranh được dành riêng cho các câu trả lời sử dụng ngôn ngữ hoặc tính năng chỉ được triển khai sau thử thách.
Martin Ender

1

Toán học, 102 byte

T=ToCharacterCode;L=Length;(a=T@#;b=T@#2;FromCharacterCode@Table[Max[a[[i]],b[[i]]],{i,L@a~Min~L@b}])&


đầu vào

["Pha trộn", "đậm"]


L@a~Min~L@btiết kiệm một byte
Greg Martin

1

APL (Dyalog) , 22 byte

Lấy hai chuỗi (hoặc nhiều hơn!) Làm đối số đúng.

{⎕UCS⌈⌿⎕UCS↑⍵↑¨⍨⌊/≢¨⍵}

Hãy thử trực tuyến!

{ một chức năng ẩn danh mà lập luận ngay được đại diện bởi

⎕UCS các ký hiệu từ U nicode C haracter S et tương ứng với

⌈⌿ giá trị tối đa trong mỗi cột của

⎕UCS mã điểm từ U nicode C haracter S et cho

 matrified (ma trận từ danh sách các chuỗi)

 lập luận

↑¨⍨ mỗi giới hạn ở

⌊/ tối thiểu

≢¨ độ dài

 của các đối số

}

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.