java simple idea 100%
```\nclass Solution {\n    public String strWithout3a3b(int a, int b) {\n        \n//  (a,b)->(2,3)  ababb   (10,2) ababaaaa invalid test case (if(abs(a-b)>3) t
```\nclass Solution {\n    public String strWithout3a3b(int a, int b) {\n        \n//  (a,b)->(2,3)  ababb   (10,2) ababaaaa invalid test case (if(abs(a-b)>3) then invalid)\n// a>b aabaabaab\n// b>a bbabba..\n// a=b abababab\n        \n        StringBuilder sb=new StringBuilder("");\n// if it is a valid case when b==0 no of a\'s can\'t be 3 0r more\n        if(b==0){\n         while(a>0){sb.append("a");a--;}\n            return sb.toString();\n        }\n        if(a==0){\n         while(b>0){sb.append("b");b--;}\n            return sb.toString();\n        }\n// if a and b are same (3,3)->ababab\n// if a>b then aabaab but b might become 0        \n        if(a==b){\n            while(a!=0){\n                sb.append("a");\n                sb.append("b");\n                a--;\n            }\n            return sb.toString();\n        }else if(a>b){\n            while(a>b&&b>0){\n                sb.append("aa");\n                sb.append("b");\n            a-=2;\n                b-=1;\n            }\n            sb.append(strWithout3a3b(a,b));\n            return sb.toString();\n        }\n        \n            while(b>a&&a>0){\n            sb.append("bb");\n            sb.append("a");\n            b-=2;\n            a-=1;\n            }\n            sb.append(strWithout3a3b(a,b));\n        \n        \n        return sb.toString();\n    }\n}
[]