浮かびますか?


10

チャレンジ

ボートの底を表す2D文字列を入力として指定すると、ボートが浮くかどうかを決定する必要があります。この2D文字列は、最も便利な形式にすることができます。(改行付きの文字列、文字列のリスト、文字のリストのリストなど)。浮かぶ場合は真の値を、沈む場合は偽の値を出力します。

船底の密度が一定でない場合、ボートは転倒するため、のすべての特性は同じでなければなりません。また、スペースで表される大きな穴がボートにある場合、沈みますので、ボートに4より大きい面積の穴があってはなりません。次に例を示します。

########
#   ####
########
#  ## ##
#  #####
########

このボートは有効です。その最大の穴の面積は4であるためです。このボート:

########
########
#     ##
#  #####
########

面積が7の穴があるため、は無効です。すべての入力の外側は穴のない塗りつぶされた四角形であると安全に想定できます。さらにいくつかのテストがあります:

$$$$$$$$
***$$$$$
***$$$$$
***$$$$$
$$$$$$$$
Invalid density. Sink.

%%%%%%%%
%    % %
%%%%%  %
%    % %
%%%%%%%%
None of the holes are larger than 4. Float.

OOOOOOOO
OOOOOOO 
OOOOOOOO
OOOOOOOO
OOOOOOOO
The outside border is not solid. Undefined.

&&&&&&&&&&&&&
& & & & & & &
&& & & & & &&
& & & & & & &
&& & & & & &&
& & & & & & &
&&&&&&&&&&&&&
Although I would not be comfortable riding in this boat myself, 
none of the holes are larger than 4. It floats.

@@@@@
@   @
@   @
@   @
@@@@@
It sinks.

ルール

  • IOは適切な形式にすることができます。
  • 標準の抜け穴が適用されます。
  • バイト単位の最短回答が優先されます。
  • 指定された文字列は完全に印刷可能なASCIIで構成されます。

は何ですか?フレームとは?
2016

@flawr 下部は、入力として受け取る文字列です。フレームは、私が編集すること文言のお粗末な選択です。
James

「2D文字列」?文字列のリストですか?
モニカの訴訟に資金を提供

&ボートは存在すると思います
l4m2

「船底の密度が一定でない場合、ボートは転倒するので、のすべての特性は同じでなければなりません。」外側の境界が1つの文字であり、内側が別の文字である場合、密度は一貫していませんが、転倒しないでしょうか?
ジェリージェレミア

回答:


3

Matlab、106バイト

s=input('');im=~(s-32);c=bwconncomp(im,4);disp(~nnz(cellfun(@nnz,c.PixelIdxList)>3)&nnz(unique(s(~im)))<2)

入力は、たとえば最初のテストケースの文字の行列です。

`['$$$$$$$$';'***$$$$$';'***$$$$$';'***$$$$$';'$$$$$$$$']`

説明:

s=input('');           %read input
im=~(s-32);            %convert input to bw image (space = black)
c=bwconncomp(im,4);    %calculate the connected components (4 connectivity)

disp(
     ~nnz(cellfun(@nnz,c.PixelIdxList)>3) %find out whether we have components that have more at least 4 pixels
     &nnz(unique(s(~im)))<2)              %find out if we have more than 1 non-space character
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.