C++||BFS||Commented
!!!Please Upvote if you really find useful....\n.1.Genrate two function add and rotate as per question asked to add every odd pos, and rotate b times\n2.BFS all
`!!!Please Upvote if you really find useful....`\n.1.Genrate two function add and rotate as per question asked to add every odd pos, and rotate b times\n2.BFS all possiblity along with inserting in set to check element created must be unique in term to finding\n3.Inseting in set is impotant as it help  from infnite loop in queue and give smallest lexo element in O(log n) time\n\n\n```\nclass Solution {\npublic:\n    //Adding every odd pos\n    string add(string str,int a)\n    {\n        int n=str.length();\n        for(int i=0;i<n;i++)\n        {\n            if(i%2==1)\n            {\n                int x=((str[i]-\'0\')+a)%10;\n                str[i]=x+\'0\';\n                \n            }\n        }\n        return str;\n    }\n    //Rotate by swapping metod \n    string rotate(string str,int b)\n    {\n        int n=str.length();\n        for(int i=1;i<=b;i++)\n        {\n            for(int j=0;j<n-1;j++)\n            {\n                swap(str[j],str[n-1]);\n            }\n        }\n        return str;\n    }\n    \n    //BFS code\n    string findLexSmallestString(string str, int a, int b) {\n        //Set for uniquely store element\n        set<string>s;\n        queue<string>q;\n        q.push(str);\n        while(q.size())\n        {\n            string str1=q.front();\n            q.pop();\n            string str2=add(str1,a);\n            string str3=rotate(str1,b);\n            if(s.count(str2)==0)\n            {\n               s.insert(str2);\n                q.push(str2);\n            }\n            if(s.count(str3)==0)\n            {\n                s.insert(str3);\n                q.push(str3);\n            }\n            \n        }\n        \n        return *(s.begin());\n        \n        \n        \n    }\n};\n```
['Breadth-First Search', 'C']