Straightforward Easy BFS solution | C++
\nclass Solution {\npublic:\n    string get1(string curr,int a)\n    {\n        for(int i=0;i<curr.size();i++)\n        {\n            if(i%2)\n            {\n 
```\nclass Solution {\npublic:\n    string get1(string curr,int a)\n    {\n        for(int i=0;i<curr.size();i++)\n        {\n            if(i%2)\n            {\n             int num  = curr[i]-\'0\';\n             num = (num+a)%10;\n             curr[i]= num+\'0\';\n            }\n        }\n        return curr;\n    }\n    string get2(string curr,int k)\n    {\n         k  = k%curr.size();\n        reverse(curr.begin(),curr.end());\n        reverse(curr.begin(),curr.begin()+k);\n        reverse(curr.begin()+k,curr.end());\n        return curr;\n    }\n    \n    string findLexSmallestString(string s, int a, int b) {\n        queue<string>q;\n        vector<string>st;\n        vector<string>vect;\n        set<string>visited;\n        visited.insert(s);\n        q.push(s);\n        while(!q.empty())\n        {\n          string curr = q.front();\n            q.pop();\n            vect.push_back(curr);\n            string one = get1(curr,a);\n            if(visited.find(one)==visited.end())\n            {\n                q.push(one);\n                visited.insert(one);\n            }  \n            string two = get2(curr,b);\n            if(visited.find(two)==visited.end())\n            {\n                q.push(two);\n                visited.insert(two);\n            }  \n        }\n        sort(vect.begin(),vect.end());\n      \n        return vect[0];\n        \n    }\n};\n```
[]