क्या यह तैरता रहेगा?


10

चुनौती

एक 2d स्ट्रिंग को एक इनपुट के रूप में एक नाव के नीचे का प्रतिनिधित्व करते हुए, आपको यह निर्धारित करना होगा कि नाव तैर जाएगी या नहीं। यह 2 डी स्ट्रिंग जो भी प्रारूप में हो सकता है सबसे सुविधाजनक है। (नई सूचियों के साथ स्ट्रिंग, स्ट्रिंग की सूची, वर्णों की सूची की सूची, आदि) एक सत्य मान प्रिंट करें यदि यह फ्लोट होगा, और एक गलत मूल्य अगर यह डूब जाएगा।

यदि नीचे असंगत घनत्व है, तो एक नाव टिप करेगी, इसलिए प्रत्येक वर्ण समान होना चाहिए। इसके अलावा, अगर किसी नाव में बड़े छेद हैं, जो रिक्त स्थान द्वारा दर्शाया गया है, तो यह डूब जाएगा, इसलिए आपकी नाव में 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 शामिल होगा।

नीचे क्या है ? फ्रेम क्या है ?
दोष

@flawr नीचे वह स्ट्रिंग है जिसे आप इनपुट के रूप में लेते हैं। फ्रेम शब्दों है कि मैं बाहर संपादित करेंगे की एक गरीब विकल्प है।
जेम्स

एक "2d स्ट्रिंग"? आप तार की एक सूची का मतलब है?
निधि मोनिका का मुकदमा

मुझे लगता है कि &नाव मौजूद है
l4m2

"अगर नीचे एक असंगत घनत्व है, तो एक नाव टिप देगा, इसलिए प्रत्येक वर्ण समान होना चाहिए।" यदि बाहर की सीमा एक वर्ण की थी और आंतरिक भिन्न वर्ण की थी तो यह असंगत घनत्व होगा, लेकिन यह इस पर टिप नहीं देगा।
जेरी यिर्मयाह

जवाबों:


3

मतलाब, 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.