Những tảng đá nguyên khối cao bao nhiêu?


29

Dưới đây là một ví dụ về đầu vào của nguyên khối . Có 4 trong ví dụ này.

  _
 | |        _
 | |  _    | |
 | | | |   | |     _
_| |_| |___| |____| |_

Khối nguyên khối đầu tiên cao 4 đơn vị, thứ hai là 2, thứ ba là 3 và cuối cùng là 1.

Nhiệm vụ

Chương trình của bạn sẽ xuất độ cao của các khối nguyên khối theo thứ tự từ trái sang phải. Các định dạng đầu ra có thể là trong bất kỳ loại danh sách hoặc mảng.

Ghi chú

  • Đầu vào có thể được lấy dưới dạng bất kỳ chuỗi thứ nguyên, danh sách các chuỗi hoặc danh sách các ký tự.
  • Đây là , vì vậy byte thấp nhất sẽ thắng .
  • Bạn phải giả định rằng các tảng đá nguyên khối luôn có cùng chiều rộng và luôn _cách xa nhau ít nhất 1 lần.
  • Họ có thể đến ở bất kỳ chiều cao, và với số lượng bất kỳ.

Tôi / O

  _
 | |        _
 | |  _    | |
 | | | |   | |     _
_| |_| |___| |____| |_   >> [4,2,3,1]

           _
          | |
  _       | |
 | |  _   | |  _
_| |_| |__| |_| |_   >> [2,1,4,1]


 _   _   _ 
| |_| |_| |_____   >> [1,1,1]

____________________   >> undefined behavior

 _
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |   >> [11]

     _       _       _       _       _
 _  | |  _  | |  _  | |  _  | |  _  | |
| |_| |_| |_| |_| |_| |_| |_| |_| |_| |  >> [1,2,1,2,1,2,1,2,1,2]

2
Tôi có thể giả sử đầu vào được đệm đúng không gian?
isaacg

17
[10]nguyên khối của bạn không [11]?
TessellatingHeckler

Không phải là không xác định chỉ là một mảng trống?
Solomon Ucko

@isaacg vâng, điều đó sẽ ổn thôi
Graviton

@SolomonUcko về mặt kỹ thuật có, mặc dù để làm cho nó đơn giản hơn cho tất cả các ngôn ngữ, tôi quyết định không để chúng xử lý nó.
Graviton

Câu trả lời:


15

Jelly , (8?) 9 byte

Ỵ=”|Sḟ0m2

Một liên kết đơn âm chấp nhận một danh sách các ký tự như được chỉ định và trả về một danh sách các số nguyên.

Lưu ý: 8 byte nếu một danh sách các chuỗi, mỗi chuỗi trên một dòng, thực sự được dự định là định dạng đầu vào được phép - chỉ cần xóa .

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

Làm sao?

Ỵ=”|Sḟ0m2 - Link: list of characters, s
Ỵ         - split at newlines
  ”|      - literal '|'
 =        - equals (vectorises)
    S     - sum (vectorises, hence counts the number of '|' in every column)
     ḟ0   - filter out zeros (only keep the results from the sides of the towers)
       m2 - modulo index with 2 (keep only the left side measurements)

Tôi không biết, nhưng điều này có ổn không?
V. Courtois

1
@ V.Courtois Tôi không hiểu tại sao không, vì có lẽ chúng ta sẽ không bao giờ có được đầu vào như vậy.
Erik the Outgolfer

Được rồi, đó là vì tôi thấy rằng một số câu trả lời khác được tính
V. Courtois

2
@ V.Courtois đầu vào mà bạn đề xuất không phù hợp với đặc điểm kỹ thuật, tương tự như việc thêm dấu gạch dưới trên bầu trời, một phần nguyên khối, hoặc ngầm có thể sẽ phá vỡ nhiều đệ trình khác.
Jonathan Allan

Cử tri xuống - bạn có quan tâm để giải thích lý do của bạn?
Jonathan Allan


6

JavaScript (ES6), 79 78 byte

-1 byte nhờ @Shaggy

a=>a.map((b,i)=>b.replace(/_/g,(_,j)=>o[j]=a.length-i-1),o=[])&&o.filter(x=>x)

Đưa đầu vào như một mảng của chuỗi.

Kiểm tra đoạn trích

f=
a=>a.map((b,i)=>b.replace(/_/g,(_,j)=>o[j]=a.length-i-1),o=[])&&o.filter(x=>x)
I.value="           _\n          | |\n  _       | |\n | |  _   | |  _\n_| |_| |__| |_| |_"
<textarea id=I rows=7 cols=30></textarea><br><button onclick="O.value=`[${f(I.value.split`\n`).join`, `}]`">Run</button> <input id=O disabled>


1
78 byte:a=>a.map((x,y)=>x.replace(/_/g,(_,z)=>c[z]=a.length-y-1),c=[])&&c.filter(n=>n)
Xù xì

@Shaggy Nice, tôi hoàn toàn không nghĩ đến việc sử dụng replace. Cảm ơn!
Justin Mariner

6

C ++, 171 169 byte

#import<vector>
#import<iostream>
int f(std::vector<std::string>s){for(int a,j,i=0,k=s.size()-1;a=s[k][i];++i)if(a==32){for(j=0;(a=s[k-++j][i])-95;);std::cout<<j<<" ";}}

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

C ++ (GCC), 150 byte

Cảm ơn @aschepler!

#import<vector>
#import<iostream>
int f(auto s){for(int a,j,i=0,k=s.size()-1;a=s[k][i];++i)if(a==32){for(j=0;(a=s[k-++j][i])-95;);std::cout<<j<<" ";}}

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


1
Nếu sử dụng g ++, bạn có thể sử dụng phi tiêu chuẩn f(auto s)và chỉ định nó nhận bất kỳ vùng chứa truy cập ngẫu nhiên nào của các thùng chứa truy cập ngẫu nhiên của char.
aschepler


5

APL Dyalog, 29 byte

{0~⍨↑+/(⌈/⍴¨⍵)↑¨(⍳≢⍵)×⌽⍵='_'}

Chạy với ⎕IO←0.

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

Làm sao?

⌽⍵='_'- nơi '_', dòng đầu tiên

×- nhân với ...

(⍳≢⍵)- phạm vi của (không có chỉ mục)

↑¨ - cho mỗi dòng, đệm với số không bằng ...

(⌈/⍴¨⍵) - chiều dài tối đa

↑+/ - tổng hợp các hàng được nén và làm phẳng

0~⍨ - loại bỏ số không



5

PowerShell, 133 byte

param($s)$r=,0*($l=($s=$s-replace'\| \|',' 1 ')[0].Length);1..$s.Count|%{$z=$_-1;0..($l-1)|%{$r[$_]+=(''+$s[$z][$_]-as[int])}};$r-ne0

Có vẻ như nó không cạnh tranh lắm; nó thực hiện thay thế regex để biến các tháp thành các cột bằng 1, tạo một mảng bằng 0 độ dài của chuỗi đầu vào, sau đó bước qua các dòng cộng thêm 1s.

Các thử nghiệm đã sẵn sàng để chạy:

$s1 = @'
  _                   
 | |        _         
 | |  _    | |        
 | | | |   | |     _  
_| |_| |___| |____| |_
'@-split"`r?`n"


$s2 = @'
 _
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | 
'@-split"`r?`n"

$s3 = @'
           _      
          | |       
  _       | |           
 | |  _   | |  _   
_| |_| |__| |_| |_ 
'@-split"`r?`n"


$s4 = @'
 _   _   _      
| |_| |_| |_____ 
'@-split"`r?`n"

$s5 = @'
     _       _       _       _       _ 
 _  | |  _  | |  _  | |  _  | |  _  | |
| |_| |_| |_| |_| |_| |_| |_| |_| |_| | 
'@-split"`r?`n"

4

Japt , 11 byte

z ·mb'_ fw0

Kiểm tra nó trực tuyến!

Giải trình

z ·mb'_ fw0   : Implicit input
z             : Rotate the input clockwise. This puts the "floor" against the left side.
  ·           : Split the 2D string into lines.
   m          : Replace each column (now row) X with
    b'_       :   the index of '_' in X (0-indexed). This gives us the output list, with
              :   0's and -1's mixed in representing the columns that are not monoliths.
        f     : Take only the items X where
         w0   :   max(X, 0) is truthy. Since 0 is falsy, this removes anything <= 0.
              : Implicit: output result of last expression

4

Võng mạc , 48 38 byte

^
¶
{`(¶.*)*¶_(.*¶)+
$#2 $&
}`¶.
¶
G`.

Hãy thử trực tuyến! Liên kết bao gồm ví dụ đầu tiên. Giải thích: Một dòng có tiền tố sẽ thu thập kết quả. Khi mỗi cột được lặp đi lặp lại lần lượt, những cột chứa mức _trên mặt đất có số lượng dòng còn lại trong cột được tính. Cuối cùng, các dòng trống bây giờ sẽ bị xóa. Chỉnh sửa: Đã lưu 10 byte nhờ nguồn cảm hứng từ @FryAmTheEggman.


Thật tuyệt, tôi đã có một giải pháp ngắn hơn một chút , nhưng nó không hoạt động với các đầu vào lớn vì nó sẽ làm rối loạn khả năng sắp xếp chúng của tôi. Đi từng cột là một cách tốt đẹp để tránh điều đó!
FryAmTheEggman

@FryAmTheEggman Tôi đã chuyển sang phương pháp đếm các dòng bằng cách sử dụng _s, điều này có ý nghĩa hơn nhiều so với việc cố gắng sử dụng |s, cảm ơn!
Neil

@FryAmTheEggman Không khắc phục được sự cố, nhưng giai đoạn sắp xếp của bạn có thể được đơn giản hóa bằng cách bỏ giao diện và sắp xếp theo $.%`, và giai đoạn cuối có thể !`\d+. Và nếu bạn thay đổi giai đoạn đầu tiên thành một cái nhìn, bạn không cần phải lặp lại.
Martin Ender

@FryAmTheEggman Và đây là cách khắc phục cho cách tiếp cận của bạn, nhưng nó kết thúc ở mức 46 byte.
Martin Ender

@MartinEnder 45 có lẽ? Hãy thử trực tuyến!
Neil

4

Java 8, 133 117 116 114 byte

a->{for(int l=a.length-1,i=0,j;i<a[0].length;i++)if(a[l][i]<33){for(j=0;a[j][i]<33;j++);System.out.print(l-j+",");}}

Lấy đầu vào là một (← lưu 16 byte). -2 byte để đổi lấy đầu ra ít đọc hơn nhờ @ OlivierGrégoire bằng cách thay đổi thành .String[] char[][]
print(l-j+",")println(l-j)

Giải trình:

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

a->{                         // Method with character 2D-array parameter and no return-type
  for(int l=a.length-1,      //  Length of the 2D char-array - 1
      i=0,j;                 //  Index-integers
    i<a[0].length;i++)       //  Loop (1) over the 2D char-array
    if(a[l][i]<33){          //   If the base of the current column is a space
      for(j=0;a[j][i]<33;    //    Loop (2) over the cells in this column as long as
                             //    we encounter spaces (from top to bottom)
        j++                  //     And increase `j` every time, to go down the column
      );                     //    End of loop (2)
      System.out.println(l-j);
                             //    Print the amount of rows - `j`
    }                        //   End of if-block
                             //  End of loop (1) (implicit / single-line body)
}                            // End of method

Tôi chưa thử nhưng ý tưởng của tôi cho thử thách này là đi từ trên xuống dưới và tìm kiếm _nếu tìm thấy cửa hàng đó là vị trí rồi đặt hàng trên đó, tất nhiên bỏ qua hàng dưới cùng. Có thể giúp tiết kiệm byte ...
TheLethalCoder

@TheLethalCoder Đó cũng là suy nghĩ ban đầu của tôi, nhưng bạn muốn lưu trữ nó ở đâu / đặt mua nó ở đâu? Ban đầu tôi nghĩ là một Bản đồ, nhưng những bản đồ này chưa được sắp xếp nên bạn sẽ cần một Bản đồ được liên kết. Trong đầu tôi nghe có vẻ hơi quá nhiều byte, nhưng nếu bạn có thể tìm ra cách để thực hiện nó ngắn hơn thì hãy thoải mái đăng câu trả lời và tôi sẽ +1 nó. :)
Kevin Cruijssen

Tôi chỉ cố gắng giảm xuống 150 bằng Linq nhưng vẫn còn chỗ để chơi golf.
TheLethalCoder

Trong C #, chúng ta có các mảng nhiều chiều như: new[,]thay vì mảng lởm chởm mà bạn đang sử dụng như new[][]. Nếu bạn có điều đó trong Java, nó có thể giúp bạn tiết kiệm một số byte.
TheLethalCoder

1
System.out.println(l-j);có vẻ đủ để tôi dự phòng 2 byte. Ngoài ra, trong phần giải thích, bạn đã quên thay đổi length()thành length(không có tỷ lệ nào trên số đếm byte vì nó chính xác trong bài nộp).
Olivier Grégoire

3

Haskell, 75 74 byte

import Data.List;f=filter(>0).map(length.fst.span(<'!').reverse).transpose

Đầu vào được dự kiến ​​là một danh sách các chuỗi (theo chiều dọc).


Tại sao nên sử dụng dấu chấm phẩy sau khi nhập, khi một dòng mới có cùng độ dài và thành ngữ hơn?
Jules

@Jules: Vâng, tôi thường làm
siracusa




3

C #, 150 144 137 byte

using System.Linq;a=>a.SelectMany((i,h)=>i.Select((c,w)=>new{c,w,d=a.Length-1-h}).Where(o=>o.c==95&o.d>0)).OrderBy(o=>o.w).Select(o=>o.d)

Phiên bản đầy đủ / được định dạng:

using System;
using System.Collections.Generic;
using System.Linq;

class P
{
    static void Main()
    {
        Func<char[][], IEnumerable<int>> f = a =>
            a.SelectMany((i, h) => i.Select((c, w) => new { c, w, d = a.Length - 1 - h })
                                    .Where(o => o.c == 95 & o.d > 0))
             .OrderBy(o => o.w)
             .Select(o => o.d);

        Console.WriteLine(string.Concat(f(new char[][]
        {
            "  _                 ".ToArray(),
            " | |       _        ".ToArray(),
            " | |  _   | |       ".ToArray(),
            " | | | |  | |    _  ".ToArray(),
            "_| |_| |__| |___| |_".ToArray(),
        })));

        Console.ReadLine();
    }
}

3

Java 8 - 229 byte 213 byte

s->{Map<Integer,Integer> m=new TreeMap();String[] l=s.split("\n");for(int i=0,j=-1;i<l.length-1;++i){s=l[i];while((j=s.indexOf("_",j+1))>=0){m.put(j,i);}}for(int i:m.values()){System.out.print(l.length-i-1+",");}}

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

Ung dung:

public static void foo(String input)
{
    Map<Integer, Integer> map = new TreeMap(); // Raw types!!
    String[] lines = input.split("\n");

    for (int i = 0, j = -1; i < lines.length - 1; ++i)
    {
        input = lines[i];

        while ((j = input.indexOf("_", j + 1)) >= 0)
        {
            map.put(j, i);
        }
    }

    for(int i:map.values())
    {
        System.out.print(lines.length - i - 1 + ",");
    }
}

Woo, bài đầu tiên. Bất kỳ trợ giúp cải thiện nó sẽ là tuyệt vời. Tôi biết tôi có thể thoát khỏi indexOfvăn bản đó hai lần. Biết nó! Tôi đã có ý tưởng thay đổi các loại trong bản đồ từ Integer thành Long nhưng tôi nghĩ đó là một ngõ cụt.


Tôi biết đã có một giải pháp Java 8 tốt hơn nhiều , nhưng đó char[][]là đầu vào mà tôi nghĩ là dễ làm việc hơn trong trường hợp này so với String.


1
Bạn chưa bao gồm các mục nhập (chúng được yêu cầu cho câu trả lời Java). Đừng sử dụng Mapnhưng một int[](có thể được khởi tạo thành new int[99]?). Không cần một không gian sau String[] l: String[]lhoạt động như nhau và ngắn hơn. Sử dụng println(l.length-i-1)thay vì println(l.length-i-1+","). Đừng khởi tạo j: chỉ cần viết : ,j;. Nếu bạn sử dụng một int[]như được đề xuất trước đó, hãy khai báo như thế này: int m[]=new int[99],i=0,j;và xóa khai báo khỏi for-loop.
Olivier Grégoire

1
OlivierGrégoire thực sự đúng về nhập khẩu cần thiết cho Bản đồ. Đối với việc chơi golf mã hiện tại của bạn với Map, bạn có thể thay đổi nó thành : import java.util.*;s->{Map m=new TreeMap();String[]a=s.split("\n");int l=a.length-1,j=-1,i=j;for(;++i<l;)for(s=a[i];(j=s.indexOf("_",j+1))>=0;m.put(j,i));for(Object o:m.values())System.out.println(l-(int)o);}. Không cần <Integer,Integer>bản đồ khi bạn có thể sử dụng int; a.length-1được sử dụng hai lần, vì vậy bạn có thể sử dụng một biến cho nó; bằng cách đặt mọi thứ vào trong vòng lặp, bạn có thể thoát khỏi tất cả các dấu ngoặc. Ồ, và chào mừng đến với PPCG! :)
Kevin Cruijssen

@KevinCruijssen Cảm ơn! Việc chuyển đổi nội dung của vòng lặp đầu tiên đó thành vòng lặp cho vòng lặp đã được truyền cảm hứng! Siêu thông minh.
Michael

@Michael Bạn được chào đón. :) Ồ, và nếu bạn chưa thấy nó: Mẹo chơi golf trong JavaMẹo chơi golf bằng <tất cả các ngôn ngữ> có thể rất thú vị để đọc qua. Đã giúp tôi rất nhiều khi tôi mới bắt đầu (và đôi khi vẫn vậy).
Kevin Cruijssen


2

Toán học, 48 47 39 byte

Last/@(Reverse@Most@#~Position~"_")&

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

Functionmà mong đợi một mảng hình chữ nhật của các ký tự. Lấy Mostmảng (tất cả trừ hàng cuối cùng), Reverses, sau đó lấy Transpose*, sau đó tìm tất cả các Positions mà _ký tự xuất hiện. Các độ cao có liên quan làLast yếu tố của mỗi Position.

* 3ký tự sử dụng riêng tư byte U+F3C7đại diện cho \[Transpose]Mathicala. Lưu ý rằng điều này không hoạt động trong Toán học , vì vậy liên kết TIO chỉ sử dụng Transpose.


2

SOGL V0.12 , 9 byte

I{ _WH╥?O

Hãy thử nó ở đây!
Đưa đầu vào dưới dạng một mảng các chuỗi (ký tự).

Giải trình:

I          rotate the array clockwise
 {         for each element
   _       push "_"
    W      get its index in the array (0 if not found, 1 if its the ground, >1 if its what we need)
     H     decrease that
      ╥    palindromize (duplicates the number, if it's <0, then errors and pushes 0, if =0, pushes 0, if >0, then pushes the number palindromized (always truthy))
       ?   if that, then
        T  output in a new line the original decreased index

2

JavaScript (ES6), 108 104 88 byte

Đã lưu 16 byte nhờ @JustinMariner

i=>i.map((s,h)=>{while(t=r.exec(s))m[t.index]=i.length-h-1},m=[],r=/_/g)&&m.filter(e=>e)

Đầu vào được lấy dưới dạng một chuỗi các chuỗi

let input = [
'  _',
' | |           _',
' | |  _   _   | |',
' | | | | | |  | |     _',
'_| |_| |_| |__| |____| |_'
]

let anonymousFunction =
i=>i.map((s,h)=>{while(t=r.exec(s))m[t.index]=i.length-h-1},m=[],r=/_/g)&&m.filter(e=>e)

console.log(anonymousFunction(input))



Cảm ơn @JustinMariner! Tôi bị lôi cuốn về việc khởi tạo biến là các tham số không được sử dụng Array.map, đó là một mẹo hay.
alexanderbird

Bạn có thực sự cần gán RegEx cho một biến không? Bạn có thể sử dụng nó trực tiếp trong execvà lưu một vài byte.
Xù xì

Trên thực tế, điều đó là cần thiết - vòng lặp while lặp lại qua từng trận đấu trên một dòng và không có trạng thái bên trong của biểu thức chính trong biến, nó sẽ khớp với lần xuất hiện đầu tiên mỗi lần và lặp lại vô hạn. Mỗi lần lặp lại, nó sẽ tạo ra một biểu thức chính mới, do đó execsẽ khớp với lần đầu tiên. Nó thực sự gặp sự cố với trình soạn thảo đoạn trao đổi ngăn xếp nếu bạn đặt nội tuyến regex. Trừ khi tôi thiếu một cái gì đó?
alexanderbird

@shaggy Tôi quên gắn thẻ bạn trong bình luận cuối cùng của tôi
alexanderbird

2

CJam, 15 14 byte

Lưu 1 byte nhờ @BusinessCat

{W%z'_f#{0>},}

Đây là một khối lấy một chuỗi các chuỗi trên ngăn xếp và xuất ra một mảng.

Giải trình:

W%    e# Reverse
z     e# Zip
'_f#  e# Get the index of '_' in each element (-1 if not found)
{0>}, e# Filter where positive

Bạn có thể lưu 1 byte bằng cách đảo ngược toàn bộ mảng trước khi chuyển vị.
Mèo kinh doanh

1

Pip , 18 17 byte

15 byte mã, +2 cho -rp cờ.

_FI_@?'_MRVgZDs

Lấy đầu vào từ stdin. Hãy thử trực tuyến!

Giải trình

                 g is list of lines from stdin (-r flag); s is space
         RVg     Reverse g
            ZDs  Zip (transpose), filling gaps with a default char of space
        M        Map this function:
   _@?'_          Index of _ in each line (or nil if it doesn't appear)
_FI              Filter, keeping only the truthy (nonzero, non-nil) values
                 Autoprint in repr format (-p flag)

1

Pyth , 19 15 14 byte

f>T0mx_d\_.tQd

Kiểm tra nó trực tuyến! Đầu vào là một danh sách các dòng.

Giải thích

          .tQd     # Transpose, pad with spaces
    mx_d\_         # For each line, reverse it, find the position of "_" (-1 if not found)
f>T0               # Filter on positions greater than zero


1

Perl 6 , 65 byte

{m:ex/^^(\N+)_([\N*\n]+:)/.sort(*[0].chars).map(+*[1].comb("
"))}

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

  • m:exhaustive/^^(\N+)_([\N*\n]+:)/tìm kiếm chuỗi đầu vào cho tất cả các dấu gạch dưới và trả về một đối tượng khớp cho từng đối tượng, trong đó các dấu ngoặc đơn đầu tiên chứa phần trước của dòng được tìm thấy và dấu ngoặc đơn thứ hai chứa toàn bộ phần còn lại của chuỗi. Phần còn lại của chuỗi phải chứa ít nhất một dòng mới, vì vậy chúng tôi không tính các dấu gạch dưới ở mặt đất. Các:exhaustive lá cờ cho phép những trận đấu để chồng lên nhau.
  • .sort(*[0].chars)sắp xếp các đối tượng khớp này theo số lượng ký tự trong một phần của dòng trước mỗi dấu gạch dưới. Điều này ra lệnh cho họ từ trái sang phải.
  • .map(+*[1].comb("\n"))ánh xạ từng đối tượng khớp với số lượng ký tự dòng mới trong phần của chuỗi đầu vào theo sau mỗi dấu gạch dưới - nghĩa là chiều cao. Đây \nlà một ký tự dòng mới thực tế, tiết kiệm một byte.

0

PHP, 119 byte

function($s){$r=array_map(null,...$s);foreach($r as$k=>&$v)if($v=array_count_values($v)['|'])echo($v+$r[$k+2]=0)." ";};

Hãy phá vỡ điều này! Đầu vào của chúng tôi ở đây là một mảng 2D của ký tự.

$r=array_map(null,...$s) // Neat little snippet to transpose the array

foreach($r as$k=>&$v)    // Loop through the array, grabbing each row of our 2D array 
(which is now each column of the monolith)

if($v=array_count_values($v)['|']) // Count the number of '|' characters in the column 
(which is the height of our monolith), and if it's greater than 0 (truthy in PHP)...

echo($v+$r[$k+2]=0)." "; // Output that number, and simultaneously set the row 2 indices
                            down to null (to remove duplicate values)

-1

Đưa vào một chuỗi nhiều dòng. Tín dụng cho thiết lập (đầu trang và chân trang) được chuyển đến @GarethPW

Python 2 , 29 byte

lambda s:len(s.split('\n'))-1

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

Điều này chỉ đơn giản là phân chia mảng theo dòng mới và trả về độ dài-1.


Điều này không hoàn thành toàn bộ thử thách. Bạn phải trả về một mảng hoặc danh sách với tất cả các độ cao, không chỉ cao nhất.
Scott Milner
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.