legesher-native-code / exercises.json
rafaym's picture
Initial upload — Legesher native code submission portal
0807ad2 verified
{
"zh": {
"tier1": [
{
"id": "zh-t1-fizzbuzz",
"title": "FizzBuzz",
"tier": 1,
"prompt": "写一个程序,打印从 1 到 30 的数字。\n\n规则:\n- 如果数字能被 3 整除,打印 \"嘶嘶\" 而不是数字\n- 如果数字能被 5 整除,打印 \"嗡嗡\" 而不是数字\n- 如果数字既能被 3 又能被 5 整除,打印 \"嘶嘶嗡嗡\"\n\n预期输出示例:1, 2, 嘶嘶, 4, 嗡嗡, 嘶嘶, 7, ...",
"expected_output": "1\n2\n嘶嘶\n4\n嗡嗡\n嘶嘶\n7\n8\n嘶嘶\n嗡嗡\n11\n嘶嘶\n13\n14\n嘶嘶嗡嗡",
"time_estimate_min": 10
},
{
"id": "zh-t1-factorial",
"title": "阶乘",
"tier": 1,
"prompt": "写一个函数,计算一个正整数的阶乘。\n\n例如:\n- 阶乘(5) → 120\n- 阶乘(0) → 1\n- 阶乘(7) → 5040\n\n提示:阶乘(n) = n × (n-1) × ... × 1",
"expected_output": "120\n1\n5040",
"time_estimate_min": 10
},
{
"id": "zh-t1-palindrome",
"title": "回文检测",
"tier": 1,
"prompt": "写一个函数,检测一个字符串是否是回文(正读反读都一样)。\n\n例如:\n- \"racecar\" → 是回文\n- \"hello\" → 不是回文\n- \"上海自来水来自海上\" → 是回文\n\n忽略大小写和空格。",
"expected_output": "是\n否\n是",
"time_estimate_min": 15
}
],
"tier2": [
{
"id": "zh-t2-calculator",
"title": "计算器",
"tier": 2,
"prompt": "写一个简单的命令行计算器,支持以下功能:\n\n- 加法、减法、乘法、除法\n- 处理除以零的错误\n- 循环接受用户输入,直到用户输入 '退出'\n\n输入格式:\"数字 运算符 数字\"(例如:\"10 + 5\")",
"expected_output": "计算器已启动(输入'退出'结束)\n>>> 10 + 5 = 15",
"time_estimate_min": 25
},
{
"id": "zh-t2-word-count",
"title": "词频统计",
"tier": 2,
"prompt": "写一个程序,统计一段文字中每个词出现的频率,并按频率从高到低排序输出前 10 个词。\n\n输入:一段中文或英文文字(可以硬编码在程序中)\n输出:词语及其出现次数,按频率排序",
"expected_output": "词频统计结果:\n\"的\": 15次\n\"是\": 12次\n...",
"time_estimate_min": 30
}
],
"tier3": [
{
"id": "zh-t3-data-analysis",
"title": "数据分析脚本",
"tier": 3,
"prompt": "写一个数据分析脚本,分析一组学生成绩数据。\n\n功能要求:\n1. 定义一组学生数据(姓名 + 成绩列表,至少 10 名学生)\n2. 计算班级平均分、最高分、最低分\n3. 按成绩分组(优秀 90+、良好 75-89、及格 60-74、不及格 <60)\n4. 找出成绩高于平均分的学生\n5. 输出完整报告",
"expected_output": "班级成绩分析报告\n=================\n平均分:78.5\n最高分:98(李明)\n最低分:45(王芳)\n...",
"time_estimate_min": 45
}
]
},
"es": {
"tier1": [
{
"id": "es-t1-fizzbuzz",
"title": "FizzBuzz",
"tier": 1,
"prompt": "Escribe un programa que imprima los números del 1 al 30.\n\nReglas:\n- Si el número es divisible entre 3, imprime \"Fizz\" en lugar del número\n- Si el número es divisible entre 5, imprime \"Buzz\" en lugar del número\n- Si es divisible entre ambos, imprime \"FizzBuzz\"\n\nEjemplo de salida: 1, 2, Fizz, 4, Buzz, Fizz, 7, ...",
"expected_output": "1\n2\nFizz\n4\nBuzz\nFizz\n7\n8\nFizz\nBuzz\n11\nFizz\n13\n14\nFizzBuzz",
"time_estimate_min": 10
},
{
"id": "es-t1-factorial",
"title": "Factorial",
"tier": 1,
"prompt": "Escribe una función que calcule el factorial de un número entero positivo.\n\nEjemplos:\n- factorial(5) → 120\n- factorial(0) → 1\n- factorial(7) → 5040\n\nPista: factorial(n) = n × (n-1) × ... × 1",
"expected_output": "120\n1\n5040",
"time_estimate_min": 10
},
{
"id": "es-t1-palindrome",
"title": "Palíndromo",
"tier": 1,
"prompt": "Escribe una función que verifique si una cadena de texto es un palíndromo (se lee igual de izquierda a derecha que de derecha a izquierda).\n\nEjemplos:\n- \"reconocer\" → es palíndromo\n- \"hola\" → no es palíndromo\n- \"A man a plan a canal Panama\" → es palíndromo\n\nIgnora mayúsculas/minúsculas y espacios.",
"expected_output": "Sí\nNo\nSí",
"time_estimate_min": 15
}
],
"tier2": [
{
"id": "es-t2-calculator",
"title": "Calculadora",
"tier": 2,
"prompt": "Escribe una calculadora de línea de comandos que soporte:\n\n- Suma, resta, multiplicación y división\n- Manejo del error de división por cero\n- Ciclo que acepta entradas hasta que el usuario escriba 'salir'\n\nFormato de entrada: \"número operador número\" (por ejemplo: \"10 + 5\")",
"expected_output": "Calculadora iniciada (escribe 'salir' para terminar)\n>>> 10 + 5 = 15",
"time_estimate_min": 25
},
{
"id": "es-t2-word-count",
"title": "Contador de palabras",
"tier": 2,
"prompt": "Escribe un programa que cuente la frecuencia de cada palabra en un texto y muestre las 10 más frecuentes ordenadas de mayor a menor.\n\nEntrada: Un texto (puede estar codificado directamente en el programa)\nSalida: Palabras y su conteo, ordenadas por frecuencia",
"expected_output": "Resultado del conteo:\n\"el\": 15 veces\n\"la\": 12 veces\n...",
"time_estimate_min": 30
}
],
"tier3": [
{
"id": "es-t3-data-analysis",
"title": "Análisis de datos",
"tier": 3,
"prompt": "Escribe un script de análisis de datos para calificaciones de estudiantes.\n\nRequisitos:\n1. Define un conjunto de datos de al menos 10 estudiantes (nombre + calificación)\n2. Calcula el promedio, la calificación más alta y la más baja\n3. Agrupa por desempeño (Excelente 90+, Bueno 75-89, Suficiente 60-74, Insuficiente <60)\n4. Identifica estudiantes con calificación superior al promedio\n5. Genera un informe completo",
"expected_output": "Informe de calificaciones\n========================\nPromedio: 78.5\nMás alta: 98 (María García)\nMás baja: 45 (Juan López)\n...",
"time_estimate_min": 45
}
]
},
"ur": {
"tier1": [
{
"id": "ur-t1-fizzbuzz",
"title": "فز بز",
"tier": 1,
"prompt": "ایک پروگرام لکھیں جو 1 سے 30 تک کے اعداد پرنٹ کرے۔\n\nقواعد:\n- اگر عدد 3 پر پوری طرح تقسیم ہو تو \"فز\" پرنٹ کریں\n- اگر عدد 5 پر پوری طرح تقسیم ہو تو \"بز\" پرنٹ کریں\n- اگر دونوں پر تقسیم ہو تو \"فز بز\" پرنٹ کریں\n\nمثال: 1، 2، فز، 4، بز، فز، 7، ...",
"expected_output": "1\n2\nفز\n4\nبز\nفز\n7\n8\nفز\nبز\n11\nفز\n13\n14\nفز بز",
"time_estimate_min": 10
},
{
"id": "ur-t1-factorial",
"title": "فیکٹوریل",
"tier": 1,
"prompt": "ایک فنکشن لکھیں جو کسی مثبت پورے عدد کا فیکٹوریل حساب کرے۔\n\nمثالیں:\n- فیکٹوریل(5) ← 120\n- فیکٹوریل(0) ← 1\n- فیکٹوریل(7) ← 5040\n\nیاد رہے: فیکٹوریل(ن) = ن × (ن-1) × ... × 1",
"expected_output": "120\n1\n5040",
"time_estimate_min": 10
},
{
"id": "ur-t1-palindrome",
"title": "پیلنڈروم جانچ",
"tier": 1,
"prompt": "ایک فنکشن لکھیں جو یہ بتائے کہ کوئی لفظ یا جملہ پیلنڈروم ہے یا نہیں (یعنی آگے پیچھے سے ایک جیسا پڑھا جائے)۔\n\nمثالیں:\n- \"ملم\" ← پیلنڈروم ہے\n- \"سلام\" ← پیلنڈروم نہیں\n- \"racecar\" ← پیلنڈروم ہے\n\nبڑے اور چھوٹے حروف اور خالی جگہوں کو نظرانداز کریں۔",
"expected_output": "ہاں\nنہیں\nہاں",
"time_estimate_min": 15
}
],
"tier2": [
{
"id": "ur-t2-calculator",
"title": "حساب کتاب",
"tier": 2,
"prompt": "ایک کمانڈ لائن کیلکولیٹر لکھیں جو یہ کام کرے:\n\n- جمع، تفریق، ضرب اور تقسیم\n- صفر سے تقسیم کی غلطی کو سنبھالنا\n- لوپ جو 'خروج' لکھنے تک جاری رہے\n\nاندراج کی شکل: \"عدد آپریٹر عدد\" (مثلاً: \"10 + 5\")",
"expected_output": "کیلکولیٹر شروع ہو گیا ('خروج' لکھیں بند کرنے کے لیے)\n>>> 10 + 5 = 15",
"time_estimate_min": 25
},
{
"id": "ur-t2-word-count",
"title": "الفاظ شمار",
"tier": 2,
"prompt": "ایک پروگرام لکھیں جو کسی متن میں ہر لفظ کتنی بار آیا یہ گنے اور سب سے زیادہ استعمال ہونے والے 10 الفاظ دکھائے۔\n\nاندراج: کوئی بھی متن (پروگرام میں لکھا جا سکتا ہے)\nنتیجہ: الفاظ اور ان کی تعداد، زیادہ سے کم ترتیب میں",
"expected_output": "الفاظ شماری کا نتیجہ:\n\"کا\": 15 بار\n\"اور\": 12 بار\n...",
"time_estimate_min": 30
}
],
"tier3": [
{
"id": "ur-t3-data-analysis",
"title": "ڈیٹا تجزیہ",
"tier": 3,
"prompt": "طلبہ کے نمبروں کے ڈیٹا کا تجزیہ کرنے والا اسکرپٹ لکھیں۔\n\nضروریات:\n1. کم از کم 10 طلبہ کا ڈیٹا تیار کریں (نام + نمبر)\n2. اوسط، سب سے زیادہ اور سب سے کم نمبر حساب کریں\n3. کارکردگی کے مطابق گروپ بنائیں (اعلیٰ 90+، اچھا 75-89، ٹھیک 60-74، کمزور <60)\n4. اوسط سے زیادہ نمبر والے طلبہ کی فہرست بنائیں\n5. مکمل رپورٹ تیار کریں",
"expected_output": "طلبہ کی کارکردگی رپورٹ\n====================\nاوسط: 78.5\nسب سے زیادہ: 98 (احمد علی)\nسب سے کم: 45 (سارہ خان)\n...",
"time_estimate_min": 45
}
]
}
}