C# Tutorial - Solving the turing.com coding challenge practise tests using C#

Поділитися
Вставка
  • Опубліковано 27 жов 2024

КОМЕНТАРІ • 66

  • @kaleemabdul8065
    @kaleemabdul8065 Рік тому +1

    You have done a great job, Your video is helping me to prepare for a C# challenge, Thank you.
    int sum = 0;
    ArrayList arrList = new ArrayList();
    for (int i=0; i< ops.Length;i++)
    {
    int Num = 0;
    sum = 0;
    if (int.TryParse(ops[i],out Num))
    {
    arrList.Add(Num);
    }
    else if(ops[i]=="+")
    {
    sum =(int) arrList[arrList.Count - 1];
    sum += (int)arrList[arrList.Count - 2];
    arrList.Add(sum);
    }
    else if (ops[i] == "D")
    {
    sum = 2*(int)arrList[arrList.Count - 1];
    arrList.Add(sum);
    }
    else if (ops[i] == "C")
    {
    arrList.RemoveAt(arrList.Count - 1);
    }
    }
    sum = 0;
    for (int i = 0; i < arrList.Count; i++)
    {
    sum += (int)arrList[i];
    }
    return sum;

  • @ricardosilva8339
    @ricardosilva8339 2 роки тому +4

    Some tips: On the first problem It's possible to avoid the unnecessary nested loops: You can solve the problem with just one loop, which will give an O(n) algorithm. Also, try to use more meaningful names for variables. Don't forget to handle invalid inputs: It's not a good strategy to consider any input other than C, D, or + as an integer.

    • @storytime-c1p
      @storytime-c1p 2 роки тому

      would you happen to know the javascript solution for this?

    • @zainulabideniftikhar821
      @zainulabideniftikhar821 Рік тому

      do they ask same question in c# stack or they keep changing it?

  • @davidodediran6346
    @davidodediran6346 2 роки тому

    You have done a great job here, my brother. One thing I got from your presentation is the principle of separation of concern and understanding the actual questions or requirements is essential. I never thought I could access the last two indexes; I only knew of one in a list. Thanks for the method, and I am grateful.

  • @zeynephan3428
    @zeynephan3428 2 роки тому +1

    Why is the music playing in the background when doing a fully concentrated work?

  • @lifeofintelligence8523
    @lifeofintelligence8523 Рік тому +1

    I liked the solution very much
    I've also tried one.
    public int CalPointsFunc(string[] args)
    {
    int output;
    List record = new List();
    foreach(string arg in args)
    {
    if (Int32.TryParse(arg, out output))
    {
    record.Add(Int32.Parse(arg));
    }
    else
    {
    if (arg == "C")
    record.RemoveAt(record.Count - 1);
    else if (arg == "D")
    record.Add(record.Last() * 2);
    else if (arg == "+")
    record.Add(record[record.Count - 2] + record.Last());
    }
    }
    return record.Sum();
    }
    Thanks

  • @tracybufazi9165
    @tracybufazi9165 2 роки тому +2

    Wow!!
    Thànk you so much for this. Nice content 👌
    The background music is perfect for learning.

  • @nelsonmudanya3015
    @nelsonmudanya3015 2 роки тому +3

    I recreated your solution using much shorter syntax.
    Here it is ...
    class Solution
    {
    public int CalPoints(string[] ops)
    {
    var opsList = new List();
    var count = 0;
    foreach(var op in ops)
    {
    if (op.Equals("+"))
    {
    var val = opsList[opsList.Count -1] + opsList[opsList.Count - 2];
    opsList.Add(val);
    }
    else if (op.Equals("D"))
    {
    var val = opsList[opsList.Count - 1] * 2;
    opsList.Add(val);
    }
    else if (op.Equals ("C"))
    {
    opsList.RemoveAt(opsList.Count - 1);
    }
    else
    {
    opsList.Add(int.Parse(op));
    }
    }
    foreach(var op in opsList)
    {
    count += op;
    }
    return count;
    }
    }
    class CalPoints
    {
    public static void Main(string[] args)
    {
    var solution = new Solution();
    var space = new Char[] { ' ' };
    string[] ops = Console.ReadLine().Split(space);
    int output = solution.CalPoints(ops);
    Console.WriteLine(output.ToString());
    }
    }

  • @raymondjavel2559
    @raymondjavel2559 2 роки тому

    I really appreciate the background music. Helps my attention

  • @lordgreat6051
    @lordgreat6051 7 місяців тому

    why didnt u make integer list you couldve only needed to parse once while adding right?

  • @dr.kenedy-oltitia
    @dr.kenedy-oltitia 2 роки тому

    Wow! happy to discover your channel. I am preparing to take a Javascript live coding challenge, at least you have given me a hint of what to expect.

    • @verxivrmedia
      @verxivrmedia  2 роки тому

      We are glad to be of help. We wish you all the best as you write the live coding challenge

    • @ebubeandyoutube
      @ebubeandyoutube 2 роки тому

      Have you taken the test? I'm about to take the test and the template is somewhat of a challenge for me. Can we connect on discord or any other app?

  • @huseyinsarioglu
    @huseyinsarioglu 2 роки тому +1

    I try to write before watching your solution. Still refactor should be done. Here it is:
    public int Calculate(string[] scores)
    {
    const string CANCEL = "C";
    const string DOUBLE = "D";
    const string ADD = "+";
    if (scores == null || scores.Length == 0)
    {
    return 0;
    }
    var records = new List();
    foreach (var score in scores)
    {
    switch (score)
    {
    case CANCEL:
    if(records.Count == 0) throw new Exception($"{CANCEL} operator cannot be used first!");
    records.RemoveAt(records.Count - 1);
    continue;
    case DOUBLE:
    if (records.Count == 0) throw new Exception($"{DOUBLE} operator cannot be used first!");
    records.Add(records[^1] * 2);
    continue;
    case ADD:
    if (records.Count < 2) throw new Exception($"{ADD} operator cannot be used for first two values!");
    records.Add(records[^1] + records[^2]);
    continue;
    default:
    if (!int.TryParse(score, out int number))
    {
    throw new ArgumentException($"Unknown score specifier: {score}");
    }
    records.Add(number);
    continue;
    }
    }
    return records.Sum();
    }

    • @mihirrajput932
      @mihirrajput932 2 роки тому +1

      return records.AsQueryable().Sum() ; //just a small correction :)

    • @huseyinsarioglu
      @huseyinsarioglu 2 роки тому

      @@mihirrajput932 Hi Mihir. This code has been tested. No need to add AsQueryable(). System.Linq.Enumerable already has a direct extension method for sum and the other aggreagte functions :)

  • @robertovillavicencio2017
    @robertovillavicencio2017 2 роки тому

    I did something like that yesterday, un VS works ok but un the turing web give me a sintaxis error in " value.Count - 1 " for get the last member, specificly un the -

  • @abdulrafeyartist5025
    @abdulrafeyartist5025 2 роки тому

    Both can be done using single loop.
    Solution 1 :
    List result = new List();
    for (int i = 0; i < ops.Length; i++)
    {
    if (ops[i] == "+")
    {
    result.Add(result[result.Count - 1] + result[result.Count - 2]);
    }
    else if (ops[i] == "D")
    {
    result.Add(result[result.Count - 1] * 2);
    }
    else if (ops[i] == "C")
    {
    result.RemoveAt(result.Count - 1);
    }
    else
    {
    result.Add(int.Parse(ops[i]));
    }
    }
    return result.Sum();
    .................................
    Solution 2:
    char[] chars = s.ToCharArray();
    Stack openParenthesis = new Stack();
    foreach (var c in chars)
    {
    if(c == '(' || c == '{' || c == '[')
    {
    openParenthesis.Push(c);
    }

    else if(c == ')')
    {
    if(openParenthesis.Peek() == '(')
    {
    openParenthesis.Pop();
    }
    }
    else if(c == '}')
    {
    if (openParenthesis.Peek() == '{')
    {
    openParenthesis.Pop();
    }
    }
    else if (c == ']')
    {
    if (openParenthesis.Peek() == '[')
    {
    openParenthesis.Pop();
    }
    }
    }
    return openParenthesis.Count == 0;

  • @kennethihemadu7190
    @kennethihemadu7190 2 роки тому

    Can't wait for the full C# course. Im interested in learning that language

  • @clearz3600
    @clearz3600 7 місяців тому

    A stack version for fun
    var opList = new[] { "5", "2", "C", "D", "+" };
    var stk = new Stack();
    foreach(var op in opList)
    {
    switch(op)
    {
    case "+":
    var lVal = stk.Pop();
    var rVal = stk.Peek();
    stk.Push(lVal);
    stk.Push(lVal + rVal);
    break;
    case "C":
    stk.Pop();
    break;
    case "D":
    stk.Push(stk.Peek() * 2);
    break;
    default:
    stk.Push(int.Parse(op));
    break;
    }
    }
    Console.WriteLine(stk.Sum());

  • @frankjames8789
    @frankjames8789 2 роки тому

    This is great content. Looking forward to try the live coding challenge in Kotlin

  • @okechukwuihechukwu374
    @okechukwuihechukwu374 2 роки тому

    Im looking forward to develop my skills in programming from your channel.Thanks

    • @verxivrmedia
      @verxivrmedia  2 роки тому

      Best of luck! We will do our best to help you

  • @vidvitus
    @vidvitus 2 роки тому

    Hello... I'm new to turing. I'm an intermediate c# programmer. I would like to know your journey with turing... I'm wondering if this can help me in my career path

  • @digitalizedhorizon3895
    @digitalizedhorizon3895 Рік тому

    Thanks it was great! and here is an other solution:
    public static int CalPoints(string[] ops)
    {
    Stack stack = new Stack();
    foreach (string op in ops)
    {
    if (int.TryParse(op, out int score))
    {
    stack.Push(score);
    }
    else if (op == "+")
    {
    int prev1 = stack.Pop();
    int prev2 = stack.Peek();
    int newScore = prev1 + prev2;
    stack.Push(prev1);
    stack.Push(newScore);
    }
    else if (op == "D")
    {
    int prev = stack.Peek();
    stack.Push(prev * 2);
    }
    else if (op == "C")
    {
    stack.Pop();
    }
    }
    int finalScore = 0;
    while (stack.Count > 0)
    {
    finalScore += stack.Pop();
    }
    return finalScore;
    }

  • @pinecraig2320
    @pinecraig2320 2 роки тому

    Thank you so much. Great content

  • @tsunablast3693
    @tsunablast3693 2 роки тому +1

    Ty for the video! Your explanation is great and is helping me to prepare for a C# challenge. Just a question, why not to put the foreach (var val in opsList) [...] segment outside all if statements instead of copying and repeating it for each of them? I may be missing something.

    • @verxivrmedia
      @verxivrmedia  2 роки тому +1

      Thank you so much for your observation Sir. The reason we repeat it for each if statement is because each if statement does something unique to opsList, and we need to initialize the value of the "value" variable to zero before we call the foreach statement. Hopes this help. Thanks

    • @zainulabideniftikhar821
      @zainulabideniftikhar821 Рік тому

      did you get the same questions ?

    • @tsunablast3693
      @tsunablast3693 Рік тому

      @@zainulabideniftikhar821 In the practice test we all get the same questions, I believe. Unless it changed since then.

  • @geraldfina4236
    @geraldfina4236 2 роки тому

    Don't stop the good work

  • @olamidefalowo1407
    @olamidefalowo1407 2 роки тому

    Nice... i wished you could do it in php. But i guess thats not your stack.

  • @mgadriescu
    @mgadriescu Рік тому

    My solution, nice and clean
    public int CalPoints(string[] ops)
    {
    var record = new List();
    foreach (var item in ops)
    {
    switch (item)
    {
    case var _ when int.TryParse(item, out int value):
    record.Add(value);
    break;
    case "+":
    record.Add(record[^2] + record[^1]);
    break;
    case "D" or "d":
    record.Add(2 * record[^1]);
    break;
    case "C" or "c":
    record.RemoveAt(record.Count - 1);
    break;
    }
    }
    return record.Sum();
    }
    }

  • @wijlini
    @wijlini 2 роки тому +2

    Hello bro, what about the Turing Tests that is before the Coding Challenge ?, that will be more interesting if you show us some skills on that
    thank you

    • @verxivrmedia
      @verxivrmedia  2 роки тому +1

      This is noted Sir. Thanks for the feedback

  • @mercedesbrian6212
    @mercedesbrian6212 2 роки тому

    I like your presentation

  • @isaacmayowa7083
    @isaacmayowa7083 2 роки тому

    Please is the practice question the same as the real test that one will do?
    Urgent!!!

  • @prov4186
    @prov4186 2 роки тому

    Fantastic work

  • @peacenetwork2668
    @peacenetwork2668 2 роки тому

    Can you share this script in Java?

  • @nahimyaya1794
    @nahimyaya1794 2 роки тому

    Great work

  • @abuyahya2014
    @abuyahya2014 2 роки тому

    public static int ProcOpt(string[] opt)
    {
    List recordList = new();
    for (int i = 0; i < opt.Length; i++)
    {
    if (opt[i] == "c")
    recordList.Remove(recordList.Last());
    else if (opt[i] == "d")
    recordList.Add(recordList.Last() * 2);
    else if (opt[i] == "+")
    recordList.Add(recordList.TakeLast(2).Sum());
    else
    recordList.Add(int.Parse(opt[i]));
    }
    return recordList.Sum();
    }

  • @mohammedghabyen721
    @mohammedghabyen721 Рік тому +2

    internal void Solution()
    {
    Stack stack = new Stack();
    for (int i = 0; i < arr.Length; i++)
    {
    string cc = arr[i];
    if (cc == "C")
    stack.Pop();
    else if (cc == "D")
    {
    int peek = stack.Peek();
    stack.Push(peek * 2);
    }
    else if (cc == "+")
    {
    int prevPeek = stack.Pop();
    int newNum = prevPeek + stack.Peek();
    stack.Push(prevPeek);
    stack.Push(newNum);
    }
    else
    stack.Push(int.Parse(cc));
    }
    int res = 0;
    while (stack.Count() > 0)
    res += stack.Pop();
    Console.WriteLine(res);
    }

  • @guruswamypuni
    @guruswamypuni 6 місяців тому

    My way using stack
    static string GetSum(List input)
    {
    long num = 0;result = 0;
    if (input.Count

    • @guruswamypuni
      @guruswamypuni 6 місяців тому

      forgot stack declartion Stack puni = new Stack();

  • @robertkoifman2549
    @robertkoifman2549 Рік тому

    I'd like to give you a little better solution ;)
    public int calPoints(string[] s)
    {
    List points = new List();
    for (int i = 0; i < s.Length; i++)
    {
    if (s[i].Equals("+"))
    {
    points.Add(points[points.Count - 2] + points[points.Count-1]);
    }
    else if (s[i].Equals("D"))
    {
    points.Add(points[points.Count - 1] * 2);
    }
    else if (s[i].Equals("C"))
    {
    points.RemoveAt(points.Count - 1);
    }
    else
    {
    points.Add(int.Parse(s[i]));
    }
    }
    int score = 0;
    foreach (int point in points)
    score += point;
    return score;
    }

    • @verxivrmedia
      @verxivrmedia  Рік тому

      Thanks so much for this. I'm sure the community would learn from it

  • @sophieagada8456
    @sophieagada8456 2 роки тому

    Amazing video

  • @NadirAli-ri7jb
    @NadirAli-ri7jb 2 роки тому

    please remove the BG music

    • @verxivrmedia
      @verxivrmedia  Рік тому

      This is noted. No more background music in upcoming videos

  • @naveediqbal993
    @naveediqbal993 Рік тому

    Please remove the background music it really sucks

    • @verxivrmedia
      @verxivrmedia  Рік тому

      Ok. Thank you so much for the feedback. No more background music in upcoming videos