- एक्ज़िक्यूटर्स
-
सीखें
Python सीखने का केंद्र चलने योग्य उदाहरण, NumPy, pandas और बहुत कुछ C और C++ सीखने का केंद्र पॉइंटर, मेमोरी, STL और आधुनिक C++ C# सीखने का केंद्रC# मूल बातें, OOP, LINQ, async और .NET अभ्यास Python एल्गोरिदम खोज, सॉर्टिंग, रिकर्शन और विज़ुअलाइज़र O(n) C और C++ एल्गोरिदम C और C++ कार्यान्वयन की तुलना करें
- चैलेंज
This is the advanced follow-up to Flatten a 2D Array. Practice that challenge first. Here lists may contain more lists at any depth. In C++ and C#, use the NestedValue type in the starter code. Read kind first: 0 means skip this entry, 1 means append value, and 2 means visit items recursively.
Turn a nested list into a flat list of integers. Read from left to right; whenever you reach another list, read its contents before continuing. Ignore null values (shown as None in examples) and empty lists. Preserve repeated integers and their order.
Python receives ordinary nested lists containing integers and None. C++ and C# receive a list of NestedValue objects supplied by the starter: kind 0 means null, kind 1 means integer in value, and kind 2 means a list in items. Only the field selected by kind matters. Return a plain integer list in every language.
Implement flatten_arbitrarily_nested_list(values).
Input
values: A list whose entries can be integers, null, or further lists.
Output
Return the integers in depth-first, left-to-right order. Return an empty list when there are no integers.
सीमाएँ
The outer value is a list. At most 10,000 entries across all lists; maximum nesting depth 50. Integer leaves fit signed 64-bit. Leaves are integers or null, never strings or booleans.
उदाहरण
उदाहरण 1
इनपुट:
values = [
1,
[
2,
None,
[3]
],
[],
4
]
अपेक्षित आउटपुट:
[1, 2, 3, 4]
व्याख्या
Read 1, then enter the nested list and read 2 and 3, skipping null. The empty list adds nothing; finish with 4.
उदाहरण 2
इनपुट:
values = [
None,
[],
[None]
]
अपेक्षित आउटपुट:
[]
व्याख्या
Every entry is null or an empty container. No integer remains.
संदर्भ
-
Example 1 नहीं चलाया गयाइनपुट:
values = [ 1, [ 2, None, [3] ], [], 4 ]अपेक्षित आउटपुट:[1, 2, 3, 4]आपका आउटपुट -
Example 2 नहीं चलाया गयाइनपुट:
values = [ None, [], [None] ]अपेक्षित आउटपुट:[]आपका आउटपुट
सबमिट करने पर 5 छुपे हुए टेस्ट भी चलेंगे।
ऑनलाइन C++ कंपाइलर और डीबगर
सर्वर मोड GDB में ब्रेकपॉइंट, वेरिएबल और स्टेप कंट्रोल के साथ C++ डीबग करें।
🚀 2,389,465 कुल निष्पादन (98,070 इस महीने)
कोडिंग चैलेंज के साथ C++ का अभ्यास करें
सीधे इस एडिटर में प्रैक्टिकल समस्याएँ हल करें: सैंपल टेस्ट चलाएँ, सबमिट करें, और AI कोड रिव्यू पाएं।
विषय के अनुसार देखें
Practical code, output, memory model, data structures, algorithms और modern C++ के साथ दोनों भाषाएँ साथ सीखें।
💻 इस C++ ऑनलाइन एक्जीक्यूटर के बारे में
CodeUtility C++ Executor आपको ब्राउज़र में ही C++ कोड लिखने और चलाने देता है - कोई इंस्टॉलेशन या कंपाइलर सेटअप की जरूरत नहीं। यह एक सुरक्षित सैंडबॉक्स द्वारा संचालित है जो असली C++ मानकों C++11, C++14, C++17 से लेकर नवीनतम संस्करण तक सपोर्ट करता है।
यह टूल क्लाउड में चल रहे असली C++ कंपाइलर का उपयोग करके आपके कोड को कंपाइल और रन करता है, जिससे अलग-अलग संस्करणों में सटीक और एकसमान व्यवहार सुनिश्चित होता है। आप C++ की मूल अवधारणाओं जैसे variables, functions, loops, conditionals, और object-oriented programming के साथ बेझिझक प्रयोग कर सकते हैं।
चाहे आप इंटरव्यू की तैयारी कर रहे हों, आधुनिक C++ फीचर्स सीख रहे हों, या किसी एल्गोरिदम के लॉजिक को परखना चाहते हों, CodeUtility C++ Executor किसी भी डिवाइस से तुरंत कोड चलाने के लिए एक सरल लेकिन शक्तिशाली वातावरण प्रदान करता है।
सिर्फ़ एक कोड रनर से कहीं अधिक
एक ही एक्ज़ीक्यूटर में मल्टी-फ़ाइल एडिटर, अलग-थलग निष्पादन टर्मिनल, रनटाइम-विशिष्ट लाइब्रेरी, स्थायी वर्कस्पेस, साझाकरण और रीयल-टाइम सहयोग का उपयोग करें।
इस एक्ज़ीक्यूटर का उपयोग कैसे करें?
रनटाइम चुनें, फ़ाइल खोलें या बनाएँ, अपना कोड लिखें और चलाएँ चुनें। आउटपुट टर्मिनल में दिखाई देता है। साइन-इन उपयोगकर्ता वर्कस्पेस में फ़ाइलें रख सकते हैं, लाइब्रेरी इंस्टॉल कर सकते हैं और शेयर के माध्यम से सहयोग कर सकते हैं।
- एक संस्करण चुनें और वर्तमान फ़ाइल संपादित करें या वर्कस्पेस की दूसरी फ़ाइल खोलें।
- कोड चलाएँ, माँगे जाने पर टर्मिनल में इनपुट दें और सहेजा गया रन इतिहास देखें।
- जब कार्य के लिए एक से अधिक कोड अंश चाहिए, तो लाइब्रेरी, वर्कस्पेस टूल, शेयरिंग और चैट का उपयोग करें।
💡 C++ की बुनियादी बातें और उदाहरण जिन्हें आप ऊपर आज़मा सकते हैं
1. वेरिएबल्स और कॉन्स्टेंट्स घोषित करना
C++ में हर वेरिएबल का टाइप घोषित करना जरूरी है। ऐसे मान परिभाषित करने के लिए const का उपयोग करें जिन्हें initialization के बाद बदला नहीं जा सकता।
int age = 30;
double pi = 3.14159;
char grade = 'A';
std::string name = "Alice";
bool isActive = true;
// कॉन्स्टेंट्स
const int MAX_USERS = 100;
const std::string COMPANY = "CodeUtility";
// const को बदलने की कोशिश करने पर compile-time त्रुटि होगी
// MAX_USERS = 200; // ❌ त्रुटि
2. शर्तें (if / switch)
ब्रांचिंग के लिए if, else if, else का उपयोग करें। कई मानों के लिए switch का उपयोग करें।
int x = 2;
if (x == 1) {
std::cout << "एक\n";
} else if (x == 2) {
std::cout << "दो\n";
} else {
std::cout << "अन्य\n";
}
// स्विच-केस
switch (x) {
case 1:
std::cout << "एक\n";
break;
case 2:
std::cout << "दो\n";
break;
default:
std::cout << "अन्य\n";
}
3. लूप्स
for, while, और do-while का उपयोग कोड ब्लॉक को दोहराने के लिए करें।
for (int i = 0; i < 3; i++) {
std::cout << i << "\n";
}
int n = 3;
while (n > 0) {
std::cout << n << "\n";
n--;
}
4. ऐरे
ऐरे एक ही प्रकार के कई एलिमेंट्स स्टोर करते हैं।
int numbers[3] = {10, 20, 30};
std::cout << numbers[1] << "\n";
5. ऐरे/वेक्टर मैनिपुलेशन
डायनेमिक ऐरे के लिए std::vector का उपयोग करें।
#include <vector>
std::vector nums = {1, 2, 3};
nums.push_back(4);
nums.pop_back();
for (int n : nums) {
std::cout << n << " ";
}
6. कंसोल इनपुट/आउटपुट
इनपुट के लिए std::cin और आउटपुट के लिए std::cout का उपयोग करें।
std::string name;
std::cout << "अपना नाम दर्ज करें: ";
std::cin >> name;
std::cout << "नमस्ते, " << name << "\n";
7. फ़ंक्शन्स
फ़ंक्शन्स पुन: प्रयोज्य लॉजिक को समूहित करते हैं। पैरामीटर्स और रिटर्न टाइप्स का उपयोग करें।
int add(int a, int b) {
return a + b;
}
std::cout << add(3, 4);
8. मैप्स
std::map डिक्शनरी की तरह कुंजी-मूल्य जोड़े स्टोर करता है।
#include <map>
std::map ages;
ages["Alice"] = 30;
std::cout << ages["Alice"];
9. एक्सेप्शन हैंडलिंग
रनटाइम त्रुटियों को संभालने के लिए try और catch का उपयोग करें।
try {
throw std::runtime_error("त्रुटि हुई");
} catch (const std::exception& e) {
std::cout << e.what();
}
10. फ़ाइल I/O
फ़ाइलों से पढ़ने और लिखने के लिए fstream का उपयोग करें।
#include <fstream>
std::ofstream out("file.txt");
out << "नमस्ते फ़ाइल";
out.close();
std::ifstream in("file.txt");
std::string line;
getline(in, line);
std::cout << line;
in.close();
11. स्ट्रिंग मैनिपुलेशन
C++ स्ट्रिंग्स length(), substr(), और find() जैसी मेथड्स सपोर्ट करती हैं।
std::string text = "Hello World";
std::cout << text.length();
std::cout << text.substr(0, 5);
std::cout << text.find("World");
12. क्लासेस और ऑब्जेक्ट्स
C++ क्लासेस के माध्यम से ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग सपोर्ट करता है।
class Person {
public:
std::string name;
Person(std::string n) : name(n) {}
void greet() { std::cout << "नमस्ते, मैं " << name; }
};
Person p("Alice");
p.greet();
13. पॉइंटर्स
एक पॉइंटर किसी दूसरे वेरिएबल के मेमोरी ऐड्रेस को स्टोर करता है। ऐड्रेस पाने के लिए & का उपयोग करें,
और उस ऐड्रेस पर मौजूद मान तक पहुँचने के लिए * (डिरेफरेंस) करें।
int x = 10;
int* ptr = &x;
std::cout << "x का मान: " << x << "\n";
std::cout << "x का ऐड्रेस: " << ptr << "\n";
std::cout << "पॉइंटर से मान: " << *ptr << "\n";
// पॉइंटर के जरिए x को बदलें
*ptr = 20;
std::cout << "अपडेटेड x: " << x << "\n";
🐞 %{language} कोड ऑनलाइन डीबग कैसे करें
ऑनलाइन %{language} डीबगर से कंपाइलर या IDE इंस्टॉल किए बिना रनटाइम और लॉजिक त्रुटियाँ खोजें। सर्वर मोड debug symbols के साथ कंपाइल करता है और प्रोग्राम को GDB में चलाता है।
- लाइन नंबर के पास ब्रेकपॉइंट लगाएँ।
- कंपाइल करके पहले ब्रेकपॉइंट पर रुकने के लिए Debug चुनें।
- वर्तमान लाइन, call stack और वेरिएबल देखें।
- Continue, Step Over, Step Into या Step Out उपयोग करें।
- सत्र समाप्त करने के लिए Stop चुनें।
एक छोटे दोहराए जा सकने वाले उदाहरण से शुरू करें और अनपेक्षित व्यवहार से ठीक पहले ब्रेकपॉइंट लगाएँ।