Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<string>
- using namespace std;
- char alpha[28] = {'0', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N' 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '/0'};
- int strToInt(string s){
- int num = 0, copy = 0;
- for(int i = 0; i < s.length(); i++){
- num = s[i] - '0';
- copy = copy*10 + num;
- }
- return copy;
- }
- void pattern(string input, string remain, int least){
- if(input.length() <= 0 || least < 0){
- return ;
- }
- if(input.length() == 1){
- int a = input[0] - '0';
- if(a <= 0 || a > 26)
- return ;
- cout<<alpha[a]<<endl;;
- }
- //printing desired patterns
- string copy;
- for(int i = 0; i <= least ; i++)
- copy += input[i];
- copy += remain;
- cout<<copy<<endl;
- string dtemp = input[least - 1] + input[least];
- int dnum = strToInt(dtemp);
- if(dnum >= 0 && dnum <= 26){
- string subCopy = alpha[dnum]+ remain;
- // copy += subCopy;
- pattern(input, subCopy, least - 2);
- }
- // string stemp = ;
- int snum = input[least] - '0';
- if(snum >= 0 && snum <= 26){
- string subCopy = alpha[snum]+ remain;
- // copy += subCopy;
- pattern(input, subCopy, least - 1);
- }
- return;
- }
- int main() {
- int t;
- cin>>t;
- while(t--){
- string input;
- cin>>input;
- // int least = input.length() - 1;
- pattern(input, "", input.length() - 1);
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment