getting wrong output 36/39 in next greater element iii please help
class Solution {
public:
    int nextGreaterElement(int n) {
        string s = to_string(n);
        if (s.length() == 1) {
            return -1;
        }
        //finding first dip
        int i=s.length()-2;
        while(i>=0 && s[i]>=s[i+1]){
            i--;
        }
        //no dip found
        if(i==-1){
            return -1;
        }
        //finding just greater than ith index element
        int k=s.length()-1;
        while(s[i]>=s[k]){
            k--;
        }
        // swaping ith element when we found just greater element
        char temp=s[i];
        s[i]=s[k];
        s[k]=temp;
        string res="";
        for(int j=0;j<=i;j++){
            res+=s[j];
        }
        for(int j=s.length()-1;j>i;j--){
            res+=s[j];
        }
        long next = stol(res);
        return next;
    }
    
};
Comments (1)