2 qq 37624286 qq_37624286 于 2017.09.02 23:22 提问

poj2159求助 关于字符串的输入问题

题目链接:http://poj.org/problem?id=2159
我的代码

#include <cstdio>
#include <cmath>
#include <cstring>
#include <iostream>
#include <algorithm> 
#include <string>
using namespace std;
int num1[27], num2[27];

char a[105], b[105];
int main()
{
    int lena, lenb, j = 0, k = 0, dai = 0, count = 0;
    //fgets(a, 100, stdin);
    //fgets(b, 100, stdin);
    scanf("%s%s",a,b);
    if (lena != lenb) { cout << "NO" << endl; return 0; }
    for (int i = 0; i < strlen(a); i++) {
        num1[a[i] - 'A']++;
        num2[b[i] - 'A']++;
    }
    sort(num1, num1 + 26);
    sort(num2, num2 + 26);
    for (int i = 0; i < 26; i++) {
        if (num1[i] != num2[i]) {
            printf("NO\n");
            return 0;
        }
    }
    printf("YES\n");
    return 0;
}

这个是可以AC的!但是如果把字符串a,b的读取方式换成被注释掉的fgets那种,就会wrong answer 请教一下这是为什么,难道以后没有空格回车的输入都要尽量用scanf来弄吗,我以前都是fgets没有出过问题

1个回答

caozhy
caozhy   Ds   Rxr 2017.09.03 08:37
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
poj2159 字符串
Ancient Cipher Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 23921   Accepted: 7990 Description Ancient Roman empire had a strong government system with vari
poj2159 对我来说不是水题的水题
要不是看了题解,怎么都想不到只要两字符串中字母频数相同,就yes。 就傻傻的一直按第二段第三段方法做变换,T^T Ancient Roman empire had a strong government system with various departments, including a secret service department. Important documents
POJ2159-Ancient Cipher
转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299062729 PS:本题稍微说一下题意(当时有点发牢骚的感觉,O(∩_∩)O哈哈~)一种我认为是比较符合现实的解题思路,但是总是Wrong Answer 咋看之下确实
POJ2159源程序
北大POJ2159的源程序程序,Ancient Cipher
poj2159
题意分析:这道题的关键是看懂题意。 Substitutes for all letters must be different. For some letters substitute letter may coincide with the original letter. 说明替换的方法是不同的。不一定按题目的替换方法,只要被替换字母与替换字母是唯一的映射就可以了。 具体解法是:
poj 2159题终于明白题意了
本来是想到poj灌几道水题的,没想到poj的题水题也很有分量。开始的时候原文题意我都没能看出来。          Substitution cipher changes all occurrences of each letter to some other letter. Substitutes for all letters must be different. For some l
关于输入字符串的问题
关于输入字符串的问题 题:输入一行字符串,分别统计其中英文字母,空格,数字和其他字母的个数 程序: Ⅰ.利用字符串输入 #include #include int main() { char m[1000]; int len,i,a=0,b=0,c=0,d=0; gets(m); len=strlen(m); for(i=0;i<len;i++) { if('a'<=m
POJ 2159 模拟
这一题的题意太晦涩了,含义是指:将任意字母替换为任意一个字母,只要不出现多个字母替换成同一个就可以,即为一一映射。因此,我们只需要判断两个字符含有的不同的字母数量以及对应出现的次数都相同就行了。 //11410806 c00h00g 2159 Accepted 356K 32MS G++ 1015B 2013-03-29 15:59:15 #include #include #include #
POJ 刷题系列:2159. Ancient Cipher
POJ 刷题系列:2159. Ancient Cipher传送门:POJ 2159. Ancient Cipher题意: 给定两个长度相等的字符串a, b,问a是否由b映射过来。 思路: 注意映射规则:比如字符”A”可以映射成任意字符,只要每个字符的映射规则保持不变即可。所以我们只需要对每个字符串的频次进行统计并排序,看频次是否相等。代码如下:import java.io.BufferedRe
与字符串有关的一些典型问题的C++解法
一、C++中String类的用法总结 http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html http://www.cnblogs.com/gaojun/archive/2010/09/11/1824016.html http://www.cnblogs.com/ggjucheng/archive/201