Sort by

recency

|

1345 Discussions

|

  • + 0 comments

    Here is my simple c++ solution, video explanation here : https://youtu.be/gcNAo9voHvk.

    string funnyString(string s) {
        string r = s;
        reverse(r.begin(), r.end());
        for(int i = 1; i < s.size(); i++){
            if(abs(s[i]-s[i-1]) != abs(r[i]- r[i-1])) return "Not Funny";
        }
        return "Funny";
    }
    
  • + 0 comments

    Rust:

        let znaki = s.chars().collect::<Vec<char>>();
        let n = s.len();
    
        let mut f = Vec::new();
        let mut s = Vec::new();
        for i in 0..n {
            if i + 1 == n {break;}
            f.push(((znaki[i] as i32) - znaki[i+1] as i32).abs());
            s.push(((znaki[n-i-1] as i32) -znaki[n-i-2] as i32).abs());
        }
        if f == s {
            return "Funny".to_string();
        }
        "Not Funny".to_string()
    }
    
  • + 0 comments
    def funnyString(s):
        # Write your code here
        c=''.join(reversed(list(s)))
        flag=True
        for i in range(1,len(s)):
            if abs(ord(s[i])-ord(s[i-1]))!= abs(ord(c[i])-ord(c[i-1])):
                flag=False
                
        if flag is True:
            return 'Funny'
        else:
            return 'Not Funny'
    
  • + 0 comments

    Here is my Python solution!

    def funnyString(s):
        reverse = [ord(letter) for letter in list(reversed(s))]
        s = [ord(letter) for letter in s]
        r = [abs(reverse[i] - reverse[i + 1]) for i in range(len(reverse) - 1)]
        s = [abs(s[i] - s[i + 1]) for i in range(len(reverse) - 1)]
        if r == s:
            return "Funny"
        return "Not Funny"
    
  • + 0 comments

    My C code

    bool isTheSameArrayOfInt(const int* r,const int* t,const int size) {
        for(int i = 0;i < size;i++) {
            if(r[i] != t[i]) {
                return false;
            }
        }
        return true;
    }
     
    char* funnyString(char* s) {
        int e = strlen(s) - 1, count = 0, taille = strlen(s);;
        int *begin = (int*)malloc((strlen(s))*sizeof(int));
        int *end = (int*)malloc((strlen(s))*sizeof(int));
        if(begin == NULL || end == NULL) {
            perror("allocation failed\n");
            exit(EXIT_FAILURE);
        }
        for(int i = 1;i < taille;i++) {
            begin[count] = abs(s[i] - s[i - 1]);
            end[count] = abs(s[e] - s[e - 1]);
            e--;
            count++;
        }
    
        bool result = isTheSameArrayOfInt(begin,end,count);
    
        free(begin);
        free(end);
    
        return result ? "Funny" : "Not Funny";
    }