Sort by

recency

|

1489 Discussions

|

  • + 0 comments

    Perl:

    sub encryption {
        my $s = shift;
    
        my @parts;
        my $res;
        my $g = 0;
        $s =~ s/\s*//gm;
        my $floor = floor(sqrt(length($s)));
        my $ceeling = ceil(sqrt(length($s)));
        for (my $i = 0; $i < length($s); $i = $i + $ceeling ) {
            push(@parts, substr($s, $i, $ceeling))
        }
        
        while ($g < $ceeling) {
            for (my $j = 0; $j < scalar(@parts); $j++ ) {
                $res .= substr($parts[$j], $g, 1);        
            }
            $res .= " ";
            $g++;
        }   
        
        return $res;
    }
    
  • + 0 comments

    C++

    string encryption(string s) {
        string res = "";
        int col = ceil(sqrt(s.length()));
        for (int c = 0; c < col; c++) {
            for (int i = c; i < s.length(); i+=col) {
                res.append(1,s[i]);
            }
            res.append(" ");
        }
        return res;
    }
    
  • + 0 comments

    Someone, help me understand - how is this problem "Medium" if Magic Squares on which I sat on 6 hours straight and I can't honestly I solved them myself is also "Medium"?

    string encryption(string s) { vector tmp_data; for (int i = 0; i < s.length(); i++) { if (s[i] != ' ') { tmp_data.push_back(s[i]); } }

    int rows = round(sqrt(tmp_data.size()));
    int cols = ceil(sqrt(tmp_data.size()));
    
    vector<char> enc_data(s.length() + cols);
    int enc_idx = 0;
    for (int c = 0; c < cols; c++) {
    
        for (int r = 0; r < rows; r++) {
            int data_idx = c + (r * cols);
            if (data_idx < tmp_data.size()) {
                enc_data[enc_idx] = tmp_data[c + (r * cols)];
            }
            else {
                break;
            }
            enc_idx++;
        }
    
        enc_data[enc_idx] = ' ';
        enc_idx++;
    }
    
    string enc_str(enc_data.begin(), enc_data.end());
    return enc_str;
    

    }

  • + 0 comments

    Here is my Python code! Suprisingly, we do not need to know how many rows there are!

    def encryption(s):
        news = [s[i] for i in range(len(s)) if s[i] != " "]
        if math.sqrt(len(news)) == int(math.sqrt(len(news))):
            col = int(math.sqrt(len(news)))
        elif math.floor(math.sqrt(len(news))) * math.ceil(math.sqrt(len(news))) >= len(s):
            col = math.ceil(math.sqrt(len(news)))
        else:
            col = math.ceil(math.sqrt(len(news)))
        encoded = [[] for part in range(col)]
        for letter in range(len(news)):
            encoded[letter % col].append(news[letter])
        encoded = ["".join(encoded[i]) for i in range(len(encoded))]
        return " ".join(encoded)
    
  • + 0 comments

    Java

    public static String encryption(String s) {
        // Write your code here
        
        double squareRoot = Math.sqrt(s.length());
        int column = (int)Math.ceil(squareRoot);
        
        String output="";
        for (int i = 0; i < column; i++) {
            for (int j = i; j < s.length(); j+=column) {
                output+=s.charAt(j);
            }
            output+=" ";
        }
            return output;
        }