1143 字母转换
来源:互联网 发布:matlab求逆矩阵 编辑:程序博客网 时间:2024/05/21 06:50
字母转换
时限:1000ms 内存限制:10000K 总时限:3000ms
描述
通过栈交换字母顺序。给定两个字符串,要求所有的进栈和出栈序列(i表示进栈,o表示出栈),使得字符串2在求得的进出栈序列的操作下,变成字符串1。输出结果需满足字典序。例如TROT 到 TORT:
[
i i i i o o o o
i o i i o o i o
]
[
i i i i o o o o
i o i i o o i o
]
输入
给定两个字符串,第一个字符串是源字符串,第二个字符是目标目标字符串。
输出
所有的进栈和出栈序列,输出结果需满足字典序
输入样例
madam adamm bahama bahama long short eric rice
输出样例
[
i i i i o o o i o o
i i i i o o o o i o
i i o i o i o i o o
i i o i o i o o i o
]
[
o i i i o o i i o o o i
o i i i o o o i o i o i
o i o i o i i i o o o i
o i o i o i o i o i o i
]
[
]
[
i i o i o i o o
]
#include<iostream>#include<stack>#include<stdio.h>#include<string.h> using namespace std;char str1[100],str2[100];int rs[50];int num1,num2;stack<char>s; int search(int m);int test();void output();int main(){while(scanf("%s",&str1) != EOF){scanf("%s",&str2);//输入两个字符串 num1 = strlen(str1);num2 = strlen(str2); //计算两字符串长度while(!s.empty()){s.pop() ;}if(num1 != num2){cout<<"["<<endl<<"]"<<endl;; }else{cout<<"["<<endl;search(0);cout<<"]"<<endl;}} return 0;}int search(int m){int i; if(m == 2*num1) //递归结束 {if(test()){output();} }else{for(i = 1;i >= 0;i--){rs[m] = i;search(m+1);}}}int test(){int i,j = 0,k = 0,flag = 1,sum = 0;char temp[100];for(i = 0;i<2*num1;i++){sum=sum+rs[i];}if(sum!=num1){flag = 0;}for(i = 0;i < 2*num1;i++){if(rs[i] == 1){s.push(str1[j]);j++;}if(rs[i] == 0){if(j>k){temp[k] = s.top();s.pop();k++;}else{flag = 0;break;}}}for(k=0;k<num1;k++){if(temp[k] != str2[k]){flag = 0;break;}}return(flag);}void output(){int i ; for(i = 0;i < 2*num1-1;i++){if(rs[i] == 1){ cout<<"i "; }else{cout<<"o ";}}if(rs[2*num1] == 1){cout<<"i"<<endl;}else{cout<<"o"<<endl;}}
阅读全文
0 0
- 1143 字母转换
- 字母转换
- 字母转换
- 字母转换
- 转换字母
- 字母转换
- 字母转换
- 字母转换
- 字母的大小写转换
- 汉字转换为首字母
- 转换字母的大小写
- js大小写字母转换
- 字母大小写转换
- java 大小写字母转换
- js字母大小写转换
- flash字母转换工具
- 大小写字母的转换
- PHP字母大小写转换
- C语言基础整理
- 使用Kotlin实现百思不得姐弹出菜单
- CentOS 安装 Redis 和 php redis.so 扩展笔记
- C语言知识简介
- linux上安装redis服务
- 1143 字母转换
- Java设计模式——死磕单例模式
- UINavigationBar添加渐变的背景颜色
- 精美UI静态界面欣赏
- C语言和C++结构体的定义
- Maven学习 (二) Eclipse 上安装 Maven3插件
- FME2015破解+MyFME+汉化
- 初入C语言——关于C语言的简单认知
- Linux多线程编程讲解之系列十