දවසේ පැනය. තමන් කැමති ඕනැම දෙයකින් කල හැක

allrights

Well-known member
  • Sep 26, 2014
    7,870
    10,394
    113
    Hurray we have a python one.
    a meka competition ekak neme machan.
    just to polish our brain ne. uba meka python walin kala eka loku deyak. podi wistharekuth denna problem ekata enter un widiha
    :love:
    මචන් wordප්‍රෙස් සයිට් එකේ තීම් එකෙන් image එක දෙපාරක් ලොඩ් කර ගන්නවා බ්ලොග් පොස්ට් එකක් දම්මාම.... මම yt එකේ බැලුව ෆික්ස් කර ගන්න විදියක් නෑ ...

    me video eke thiyenne problem eka... uge solution eka mata hariyenne neh... uu post eke image eka makannai kiyanne... mata ona post eke udatama ganna feature image eka show wena stop karanna... theme eke option ekak widiyata eka naa ban...




    පොඩි css කෝඩ් කැල්ලක් ලියල දෙන්න පුළුවන් ද?

    p.s. hambunaa...
    ------ Post added on Jul 31, 2022 at 12:29 AM
     
    Last edited:
    • Like
    Reactions: HAneo

    raveenaj

    Active member
  • Feb 8, 2016
    223
    153
    43
    Simple JS code for any string any word.
    https://onecompiler.com/javascript/3ybkwf9fg

    JavaScript:
    const solution = (s, word) => {
        const sArr = [...s]
        let removedS = ''
        for (char of word) {
            const index = sArr.findIndex(c => c === char)
            if (index >= 0) {
                sArr.splice(index, 1)
                removedS += char
            } else {
              return 0
            }
        }
        if (removedS === word) {
          return 1 + solution(sArr.join(''), word)
        }
    
        return 0
    }
    
    console.log(solution('BAOOLLNNOLOLGBAX', 'BALLOON'))
     
    Last edited:

    හෙළයෙක්

    Well-known member
  • Apr 26, 2014
    49,589
    100,797
    113
    ඊයෙ දැක්කට අද තමා වෙලාවක් සෙට් උනෙ. මේ ටිකෙ රස්ට් සීන් එකේ ඉන්න නිසා එකෙන් ලිව්ව.

    XQJv3cM.png


     

    MrFrog

    Well-known member
  • Jun 25, 2018
    2,391
    2,965
    113
    මාතර
    TFS

    @HAneo , ප්‍රශ්නේ කියෙව්වම ඔලුවට ආවේ arrays දෙකකට letter count එක ගහගෙන compare කරන්න. එහෙම ගැහුවම එකක් අනෙක් එකෙන් divide කරලා min value ගත්තම උත්තරේ එනවා.

    coding ලොකුවට කරලා නැති නිසා, python වලින් ලිව්වේ හිතෙන විදියට. C# ටිකක් ඉගෙන ගන්නවා මේ දවස්වල.

    Python:
    from collections import Counter
    import numpy as np
    
    def maxMoves(S,WL):
    
        InputString = S;
        WhiteList = WL;
    
        InputStringArray = np.array([]);
        WhiteListArray = np.array([]); 
        
        WhiteListStringCharFrequency = Counter(WhiteList) # character frequency of whitelist string
    
        for key in sorted(WhiteListStringCharFrequency):
            WhiteListArray = np.append(WhiteListArray,WhiteListStringCharFrequency[key])
    
        MatchingDictWithAllZeros = {key: 0 for key in WhiteListStringCharFrequency} # duplicate whitelist array with zeros
        FilteredInputString = ''.join(i for i in InputString if  i in WhiteList)    # filter charaters in input string matching with whitelist
        FilteredInputStringCharFrequency = Counter(FilteredInputString)             # character frequency of  filtered input string
        
        
        for i in FilteredInputStringCharFrequency:
            MatchingDictWithAllZeros[i]=FilteredInputStringCharFrequency[i] 
        
        for key in sorted(MatchingDictWithAllZeros):
            InputStringArray = np.append(InputStringArray,MatchingDictWithAllZeros[key])
            
        if len(WhiteListArray) == 0:
            k = 0
        else:
            k = floor(min((InputStringArray/WhiteListArray))) # divide arrays of coefficients and taking the minimum integer
    
        return k
    
    maxMoves("BAOOLLNNOLOLGBAX", "BALLOON")
    ------ Post added on Aug 2, 2022 at 7:02 AM
     
    • Love
    Reactions: HAneo

    HAneo

    Well-known member
  • Jan 30, 2007
    12,969
    29,168
    113
    Homagama
    ඊයෙ දැක්කට අද තමා වෙලාවක් සෙට් උනෙ. මේ ටිකෙ රස්ට් සීන් එකේ ඉන්න නිසා එකෙන් ලිව්ව.

    XQJv3cM.png



    Supiri
    https://www.rust-lang.org/
    meka neda machan?
    Podi high level detail ekakuth dapan Rust gana kattiyage interest eka hadenna

    TFS

    @HAneo , ප්‍රශ්නේ කියෙව්වම ඔලුවට ආවේ arrays දෙකකට letter count එක ගහගෙන compare කරන්න. එහෙම ගැහුවම එකක් අනෙක් එකෙන් divide කරලා min value ගත්තම උත්තරේ එනවා.

    coding ලොකුවට කරලා නැති නිසා, python වලින් ලිව්වේ හිතෙන විදියට. C# ටිකක් ඉගෙන ගන්නවා මේ දවස්වල.

    Python:
    from collections import Counter
    import numpy as np
    
    def maxMoves(S,WL):
    
        InputString = S;
        WhiteList = WL;
    
        InputStringArray = np.array([]);
        WhiteListArray = np.array([]);
       
        WhiteListStringCharFrequency = Counter(WhiteList) # character frequency of whitelist string
    
        for key in sorted(WhiteListStringCharFrequency):
            WhiteListArray = np.append(WhiteListArray,WhiteListStringCharFrequency[key])
    
        MatchingDictWithAllZeros = {key: 0 for key in WhiteListStringCharFrequency} # duplicate whitelist array with zeros
        FilteredInputString = ''.join(i for i in InputString if  i in WhiteList)    # filter charaters in input string matching with whitelist
        FilteredInputStringCharFrequency = Counter(FilteredInputString)             # character frequency of  filtered input string
       
       
        for i in FilteredInputStringCharFrequency:
            MatchingDictWithAllZeros[i]=FilteredInputStringCharFrequency[i]
       
        for key in sorted(MatchingDictWithAllZeros):
            InputStringArray = np.append(InputStringArray,MatchingDictWithAllZeros[key])
           
        if len(WhiteListArray) == 0:
            k = 0
        else:
            k = floor(min((InputStringArray/WhiteListArray))) # divide arrays of coefficients and taking the minimum integer
    
        return k
    
    maxMoves("BAOOLLNNOLOLGBAX", "BALLOON")
    ------ Post added on Aug 2, 2022 at 7:02 AM
    Supiri
    Answer eka ganna puluwan karama godak thiye neda machan
    Meka py walin liwwa eka loku deyak.
    ------ Post added on Aug 2, 2022 at 12:29 PM
     

    MrFrog

    Well-known member
  • Jun 25, 2018
    2,391
    2,965
    113
    මාතර
    Supiri
    Answer eka ganna puluwan karama godak thiye neda machan
    Meka py walin liwwa eka loku deyak.
    ------ Post added on Aug 2, 2022 at 12:29 PM
    Thanks machan. aniwa thawa krama thiye meeta wada intuitive ewa.

    Machan one question.
    If you are given the task to select one from many of the programs written, what are the criteria you are looking for, other than it generates correct output. Based on your experience..
    thanks.
     

    හෙළයෙක්

    Well-known member
  • Apr 26, 2014
    49,589
    100,797
    113
    Supiri
    https://www.rust-lang.org/
    meka neda machan?
    Podi high level detail ekakuth dapan Rust gana kattiyage interest eka hadenna

    ඔව් ඔව් ඕක තමා. මාත් තාම ඒක ඉගෙන ගන්න ගමන් ඉන්නෙ.

    go-lang වලට පස්සෙ මේක ඉගෙන ගන්න පටන්ගන්න හේතුව තමා මේකෙ තියෙන memory management කරන්න ඉගෙන ගන්න ඕනි කෑල්ල සහ ලියන කෝඩ් එක compile ටයිම් එකේදිම 99% විතරම චෙක් කරල තමා compile වෙන්නෙ. එතකොට අපිට ඇත්තටම ගොඩක් වෙලාවට Run Time Errors එන්නෙ නැතිම තරම්.

    C,C++ වලට තියෙන හොද ඔල්ටර්නේටිව් එකක් මේක. දැනට තියෙන එකම අවුල තාම හරියටම හොද IDE එකක් සෙට් උන් නෑ අනික් ලැන්වේජ් වලට තියෙන පහසුකම් එක්ක බලද්දි. තව compile ටයිම් එක ටිකක් වැඩි සහ ලර්නින් කව් එකත් ටිකක් වැඩී දැනට හම්බ වෙලා තියෙන අනික් ලැන්වේජ් එක්ක බලද්දි. ලොකුම කේස් එක තියෙන්නෙ ownership manage කරන එකේ.

    හැබැයි ඉතින් හැදුවොත් හැදුව වගේ කියන්න පුලුවන් වැඩ නන් මේකෙන් කරන්න පුලුවන්. අනික මේක WebAssembly වලට සපොට් කරනව. මේක යූස් කරන්න හොද නෑ ERP වගේ සිස්ටම් වලට හේතුව අපිට මෙන්ටෙන් කරන්න කට්ටිය හොයාගන්න අමාරු වෙන්න ඉඩ තියෙනව. ඒත් High perfomance Errors ඉතාම අඩුවෙන් හෝ නැතුවම වගේ රන් වෙන්න ඕනි Apps වගේ ඒව ලියන්න හොදයි.

    මම මේ ටිකේ මේකෙන් python framework එකක් ඩිවලොප් කරනව. ඒක මම කලින් go-lang වලින් කරල තිබ්බ මුල ටික එත් ඊට වඩා මට මේකෙන් කරන එක හොදයි කියල හිතුන ඉස්සරහට ඒක යූස් කරන්න ඉන්න තැන් එක්ක බලද්දි.

    තව DAPP වලට ඉස්සරහට සෑහෙන්න එයි මේක මේකෙ තියෙන ලක්ෂණ නිසා.
     

    Solo Rider

    Well-known member
  • Sep 4, 2020
    35,922
    1
    157,341
    113
    98
    හෝමාගම
    from Swift
    recursive විදියටත් පුලුවන්, මෙක ලේසියි


    Swift:
    import Foundation
    
    let baloonArr = Array("BALLOON").map{String($0)}
    
    func stringToStringArr(_ inputString: String)-> [String] {
        return Array(inputString).map{String($0)}
    }
    
    func balloonCountIfPossible(_ inputString: String)-> Int {
      
        var balloonCount = 0
        var canMakeBalllon = true
      
        var stringArr = stringToStringArr(inputString)
      
        while (canMakeBalllon) {
            let balloonContains = baloonArr.allSatisfy(stringArr.contains)
            if balloonContains {
                balloonCount += 1
                for char in baloonArr {
                    if let charIndex = stringArr.firstIndex(where: { $0.elementsEqual(char) }) {
                        stringArr.remove(at: charIndex)
                    }
                }
            } else {
                canMakeBalllon = false
            }
        }
        return balloonCount
    }
    
    var inputString = "QAWABAWNL"
    print("Input : \(inputString) & Count : \(balloonCountIfPossible(inputString))")
    
    inputString = "BAONXXOLL"
    print("Input : \(inputString) & Count : \(balloonCountIfPossible(inputString))")
    
    inputString = "BAOOLLNNOLOLGBAXBBOOALLNN"
    print("Input : \(inputString) & Count : \(balloonCountIfPossible(inputString))")
    ------ Post added on Aug 3, 2022 at 12:25 AM
     

    niranga1989

    Well-known member
  • Jan 29, 2021
    7,742
    11,084
    113

    කැමති ඕනෙම ප්රෝග්‍රමින්ග් ලන්වේජ් එකක් තෝරා ගන්න. අලුත් ලන්වේජ් වලින් කරලා දාපල්ලා අනින් උනුත් ඉන්ස්පයර් ද මොකක්ද එක වෙන්න. තේරෙන්නේ නැති උන් අහපල්ලා ඕක සිංහලෙන් කියල දෙයි කව්රු හරි​


    1.png
    Hari lesiy.google

    Google naththam maath na

    from Swift
    recursive විදියටත් පුලුවන්, මෙක ලේසියි


    Swift:
    import Foundation
    
    let baloonArr = Array("BALLOON").map{String($0)}
    
    func stringToStringArr(_ inputString: String)-> [String] {
        return Array(inputString).map{String($0)}
    }
    
    func balloonCountIfPossible(_ inputString: String)-> Int {
     
        var balloonCount = 0
        var canMakeBalllon = true
     
        var stringArr = stringToStringArr(inputString)
     
        while (canMakeBalllon) {
            let balloonContains = baloonArr.allSatisfy(stringArr.contains)
            if balloonContains {
                balloonCount += 1
                for char in baloonArr {
                    if let charIndex = stringArr.firstIndex(where: { $0.elementsEqual(char) }) {
                        stringArr.remove(at: charIndex)
                    }
                }
            } else {
                canMakeBalllon = false
            }
        }
        return balloonCount
    }
    
    var inputString = "QAWABAWNL"
    print("Input : \(inputString) & Count : \(balloonCountIfPossible(inputString))")
    
    inputString = "BAONXXOLL"
    print("Input : \(inputString) & Count : \(balloonCountIfPossible(inputString))")
    
    inputString = "BAOOLLNNOLOLGBAXBBOOALLNN"
    print("Input : \(inputString) & Count : \(balloonCountIfPossible(inputString))")
    ------ Post added on Aug 3, 2022 at 12:25 AM
    Monada aisey mwe.. elakiri eke kunuharapa dannepa utto
    ------ Post added on Aug 3, 2022 at 12:42 AM
     

    HAneo

    Well-known member
  • Jan 30, 2007
    12,969
    29,168
    113
    Homagama
    from Swift
    recursive විදියටත් පුලුවන්, මෙක ලේසියි


    Swift:
    import Foundation
    
    let baloonArr = Array("BALLOON").map{String($0)}
    
    func stringToStringArr(_ inputString: String)-> [String] {
        return Array(inputString).map{String($0)}
    }
    
    func balloonCountIfPossible(_ inputString: String)-> Int {
     
        var balloonCount = 0
        var canMakeBalllon = true
     
        var stringArr = stringToStringArr(inputString)
     
        while (canMakeBalllon) {
            let balloonContains = baloonArr.allSatisfy(stringArr.contains)
            if balloonContains {
                balloonCount += 1
                for char in baloonArr {
                    if let charIndex = stringArr.firstIndex(where: { $0.elementsEqual(char) }) {
                        stringArr.remove(at: charIndex)
                    }
                }
            } else {
                canMakeBalllon = false
            }
        }
        return balloonCount
    }
    
    var inputString = "QAWABAWNL"
    print("Input : \(inputString) & Count : \(balloonCountIfPossible(inputString))")
    
    inputString = "BAONXXOLL"
    print("Input : \(inputString) & Count : \(balloonCountIfPossible(inputString))")
    
    inputString = "BAOOLLNNOLOLGBAXBBOOALLNN"
    print("Input : \(inputString) & Count : \(balloonCountIfPossible(inputString))")
    ------ Post added on Aug 3, 2022 at 12:25 AM
    Nice :love:
     
    • Love
    Reactions: Solo Rider

    siri_ayya

    Well-known member
  • Feb 1, 2022
    16,963
    1
    29,874
    113
    ඔබත් මේ වගේ ප්‍රශ්න විසදන්න කැමතිද? Fb එකෙන් tshirt එකක් දිනාගන්න කැමතිද? එහෙනම් අදම දැන්ම fb hacker cup එකේ qualification round එකට reg වෙන්න.. තව පැය 25කින් වගේ round ඒක ඉවර වෙනවා..problems වලින් එකක් හරි ගහගත්තොත් round 1 එකට යන්න පුළුවන්.. පළවෙනි එක පට්ට ලේසි..:P

    මෙන්න link එක..

    ප. ලි : මේකට ගිහින් මොකක්ද කරන්න ඕනෙ කියල අහන එවුන් නම් ඔය link එක පැත්ත පළාතේ යන්න එපා.. 😌
     

    EKGuest

    Well-known member
  • Nov 16, 2022
    3,206
    5,704
    113
    @HAneo භාවිතා වන අවස්ථාව අනුව අපිට මේ ප්‍රශ්නයට දෙන්න ඕනෑ සොලූෂන් එක වෙනස් වෙනවා.

    1 වෙනි අවස්ථාව: අපේ ප්‍රයෝජනයට නැවත නැවත භාවිතය සඳහා ලියන විදීය. මෙතනදී අපේ සොලූෂන් එක BALLOON හෝ වෙනත් ඕනෑම කීවර්ඩ් එකකට ගැලපෙන පරිදි Generic Solution එකක් විය යුතුයි.

    C#:
    public static int Solution1(string str, string keyword)
    {
        var freqStr = GetLetterFrequencies(str);
        var freqKeyword = GetLetterFrequencies(keyword);
    
        var maxMoves = int.MaxValue;
    
        foreach (var letter in freqKeyword.Keys)
        {
            if (freqStr.ContainsKey(letter))
                maxMoves = Math.Min(maxMoves, freqStr[letter] / freqKeyword[letter]);
            else
                return 0;
        }
    
        return maxMoves;
    }
    
    static Dictionary<char, int> GetLetterFrequencies(string s)
    {
        var freq = new Dictionary<char, int>();
        foreach (char c in s)
            if (freq.ContainsKey(c))
                freq[c]++;
            else
                freq[c] = 1;
        return freq;
    }



    2 වෙනි අවස්ථාව: Algorithmic Programming Competition එකකදී දිය යුතු සොලූෂන් එක. මෙතනදි අපි බලන්න ඕනෑ දී ඇති Constraints වලට අනුව පුලුවන් තරම් අපේ කෝඩ් එක Optimize කරන එක. මොකද Informatics Olympiad වගේ Competition එකකදී වැඩිම ලකුනු ලැබෙන්නේ fastest ම සොලූෂන් එකට. මේ ප්‍රශ්නෙට තියෙන fastest ම සොලූෂන් එකේ Time Complexity එක වෙන්නේ O[n]. මොකද අපි ඉන්පුට් එකේ තියෙන හැම අකුරක්ම අවම වශයෙන් එක් වරක් ප්‍රොසෙස් කරන්න ඕනෑ නිසා. හැබැයි අපි ඇල්ගොරිදම් එක BALLOON කියන වචනෙට Optimize කරන නිසා generic solution එකක් නෙමෙයි.

    C#:
    public static int Solution2(string s)
    {
        int[] count = new int[5];
        for (int i = 0; i < s.Length; i++)
        {
            switch (s[i])
            {
                case 'A': count[0] += 2; break;
                case 'B': count[1] += 2; break;
                case 'L': count[2]++; break;
                case 'N': count[3] += 2; break;
                case 'O': count[4]++; break;
            }
        }
        return count.Min() / 2;
    }