hdu 4545 魔法串
2013-10-08 23:10
267 查看
思路:假设小西字符串为str1[i] , 小明的字符串为str2[j] 遍历一次str1[i] ,查看对于每一个str1[i] 是否有str2[j] == str1[i] 或者 hash[str2[j]][str1[i]] == 1若都存在则输出happy, 否则输出unhappy.
注意:每一个输入后要加一个getchar(); 这点wrong了好几次
注意:每一个输入后要加一个getchar(); 这点wrong了好几次
#include <iostream> using namespace std; #define N 1100 char str1 ; char str2 ; int m_hash[27][27]; int main() { int i, j,t, n1, n2, m, k = 1; char a, b; scanf("%d", &t); while(t--) { getchar(); gets(str1); gets(str2); scanf("%d", &m); memset(m_hash, 0, sizeof(m_hash)); for (i = 0;i < m; ++i) { getchar(); scanf("%c %c", &a, &b); m_hash[a - 'a'][b - 'a'] = 1; } n1 = strlen(str1); n2 = strlen(str2); for(i = 0, j = 0;i < n1 && j < n2; ) { if (str1[i] == str2[j]) { ++j; ++i; continue; } else { while(j < n2) { if (str1[i] == str2[j] || m_hash[str2[j] - 'a'][str1[i] - 'a'] == 1) { ++j; ++i; break; } else { ++j; } } } } if (i == n1) { printf("Case #%d: happy\n", k++); } else { printf("Case #%d: unhappy\n", k++); } } return 0; }
相关文章推荐
- hdu 4545 魔法串
- HDU 4545 魔法串
- HDU 4545 魔法串
- HDU 4545魔法串
- hdu-4545-魔法串
- hdu 4545 魔法串
- hdu 4545 ——魔法串
- HDU 4545-魔法串-字符串
- HDU - 4545魔法串最长公共子序列
- hdu 4545 魔法串 dp
- hdu 4545 魔法串
- HDU 4545 魔法串
- Hdu 4545 魔法串 字符串dp
- hdu 4545 魔法串(金山居)
- Hdu 4545 魔法串 字符串dp
- hdu----(4545)魔法串(LCS)
- HDU 4545 魔法串 (简单DP)
- HDU 4545 魔法串
- hdu_4545_魔法串
- hdu 4545 西山居一 魔法串