चुनौतियों पर वापस जाएँ
आसान 0 हल किए गए 0% स्वीकृति

आकृतियों की फ़ैक्टरी

factory का उपयोग करके text descriptions से shapes बनाएँ और हर एक का area लौटाएँ.

आप क्या सीखेंगे

  • टेक्स्ट विवरण से ऑब्जेक्ट बनाना
  • बनाने का तरीका एक फ़ंक्शन के पीछे छिपाना
  • हर आकृति को अपना क्षेत्रफल खुद निकालने देना

समस्या

factory method pattern यह छिपाता है कि objects कैसे बनाए जाते हैं: आप factory से नाम के आधार पर एक shape माँगते हैं और एक ऐसा object पाते हैं जो अपना area स्वयं compute करना जानता है.

हर description एक shape name होता है जिसके बाद उसके numbers आते हैं, spaces से अलग किए गए:

  • circle r: area π·r²
  • square s: area s²
  • rectangle w h: area w·h
  • triangle b h: area b·h / 2

Implement shape_factory_areas(shapes).

इनपुट

shapes: descriptions. Numbers में decimals हो सकते हैं.

आउटपुट

हर shape का area क्रम में लौटाएँ. 1e-6 के भीतर के answers स्वीकार किए जाते हैं.

सीमाएँ

1 ≤ आकृतियों की संख्या ≤ 1,000

0 < हर संख्या ≤ 1,000

उदाहरण

उदाहरण 1
इनपुट:
shapes = ["square 3", "rectangle 2 5", "triangle 4 3"]

अपेक्षित आउटपुट:
expected = [9.0, 10.0, 6.0]
इनपुट:
std::vector<std::string> shapes = {"square 3", "rectangle 2 5", "triangle 4 3"};

अपेक्षित आउटपुट:
std::vector<double> expected = {9.0, 10.0, 6.0};
इनपुट:
string[] shapes = new string[] {"square 3", "rectangle 2 5", "triangle 4 3"};

अपेक्षित आउटपुट:
double[] expected = new double[] {9.0, 10.0, 6.0};

व्याख्या

3² = 9, 2·5 = 10 और 4·3/2 = 6.

उदाहरण 2
इनपुट:
shapes = ["circle 1"]

अपेक्षित आउटपुट:
expected = [3.141592653589793]
इनपुट:
std::vector<std::string> shapes = {"circle 1"};

अपेक्षित आउटपुट:
std::vector<double> expected = {3.141592653589793};
इनपुट:
string[] shapes = new string[] {"circle 1"};

अपेक्षित आउटपुट:
double[] expected = new double[] {3.141592653589793};

व्याख्या

π·1² = π ≈ 3.141593.

कैसे हल करें

पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।

संकेत 1

पहला शब्द पढ़कर जानें कि कौन-सी आकृति बनानी है।

संकेत 2

हर आकृति के नाम को उसके क्षेत्रफल के सूत्र से जोड़ें।

संकेत 3

अपनी भाषा की गणित लाइब्रेरी का π इस्तेमाल करें और पूरी सटीकता रखें।

अपेक्षित जटिलता

समय O(आकृतियों की संख्या), अतिरिक्त स्थान O(आकृतियों की संख्या)

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।