#include <bits/stdc++.h>
using namespace std;
int main(){
 string t;
 cin>>t;
 int n=t.size();
 string s1(n,'a'),s2(n,'a'),s3(n,'a');
 for(int i=0;i<n;i++){
  s1[i]=char('a'+(i%26));//从a到z循环
  s2[i]=char('a'+((i/26)%26));//第i位为(i/26)%26+'a',保证了26*26内不会和s1相同
  s3[i]=char('a'+((i/26/26)%26));//保证了26^3内不会和s1相同,类似哈希编码
 }
 cout<<"? "<<s1<<endl;
 string t1;
 cin>>t1;
 cout<<"? "<<s2<<endl;
 string t2;
 cin>>t2;
 cout<<"? "<<s3<<endl;
 string t3;
 cin>>t3;
 vector<int>p(n);
 for(int i=0;i<n;i++)
  p[i]=(t1[i]-'a')+(t2[i]-'a')*26+(t3[i]-'a')*26*26;//将变化后的值根据编码还原
 string s(n,'a');
 for(int i=0;i<n;i++)
  s[p[i]]=t[i];//26^3>1000,所以可行
 cout<<"! "<<s<<endl;
 return 0;
}

最新文章

  1. [个人翻译]Redis 集群教程(上)
  2. 第二十四篇:导出SOUI对象到LUA脚本
  3. 在本地主机上powershell中连接远程主机执行vbs脚本,得到执行结果(2008版及以上)
  4. Xcode8新特性和iOS10新特性
  5. wpf 绑定ObservableCollection 的Count属性
  6. Tomcat日志与Log4j日志
  7. python之路(9)反射、包装类、动态模块导入
  8. 《SpringMVC从入门到放肆》九、SpringMVC注解式开发(简单参数接收)
  9. 【从零开始自制CPU之学习篇07】最简单的ALU—全加器
  10. 易忘&amp;有用 的冷门Anaconda命令
  11. editplus注册码生成
  12. 030-IHttpModule
  13. C++ 属性类
  14. python变量和变量赋值的几种形式
  15. spring boot开发笔记——mybatis
  16. 【python-pip】pip安装国外插件timeout解决方案
  17. linux c中select使用方法
  18. Unity3d-Particle System 5.x系统的学习(四)
  19. 16、Java并发编程:Timer和TimerTask
  20. Elasticsearch学习总结--原理篇

热门文章

  1. mina写入数据的过程
  2. 查看,修改ceph节点的ceph配置命令
  3. 如何通过ISO安装win7程序
  4. Python命令模块argparse学习笔记(二)
  5. 2015.5.11 string与byte[]相互转换
  6. Compare and Swap(CAS)
  7. 12-01Js对象##正则表达式##
  8. VotingClassifier
  9. Shell编程进阶 1.9 while循环
  10. xftp的简单使用