1
有些字符串,如果满足下面的性质,则称为成对的字符串:
a. 所有的字符在字符串中出现偶数次
b. 每一对相同的字符之间不会有出现奇数次的字符
现在给你一些字符串,请判断这些字符串是否为成对的字符串。
输入:第一行是一个整数K,表示有多少个测试用例,以后每行一个测试用例。每行为一个字符串(长度不超过1000个字符)。
输出:每行输出一个测试用例的结果。如果是,输出Yes,否则输出No。
提示:字符串只有英文字母,大小写敏感。
2
考古人员发现地球在一亿年以前曾经存在一个高级文明叫做Delta,而且发现这个文明的具有文字和语言。经过艰苦卓绝的工作,专家们破译了其中的一些文字和表示方法。他们使用+表示加运算,-表示减运算,*表示乘运算,/表示整数除运算,%表示取模运算,但算术式的表示和我们不同,他们把要计算的数放到前面,运算符放在计算对象的后面,比如 1 2 + 表示 1+2, 1 12 + 3 4 + * 表示(1+12)*(3+4)。考古人员希望你帮助他们编写一个程序,计算出这些计算式的值。
输入:第一行是一个整数K,表示有多少个测试用例,以后每行一个测试用例。每行为一个字符串(长度不超过200个字符),数和数,数和运算符,运算符和运算符之间分别用一个空格隔开,数都为非负整数,且小于或等于231-1。(所有计算式都符合计算规则,不会出现不可计算的计算式,且结果都为非负整数, 且小于或等于231-1)
输出:每行输出一个测试用例的结果。使用一个字符串表示计算以后的结果。

解决方案 »

  1.   

    按找你的意思
    第一个中,如果字符串是"abcabc"不是成对字符串,而"aabbcc"是成对字符串,是吗?
    第二个中,四则运算的优先级是不是和我们通常的四则运算不同啊?
    如果是(1+2)*(3+4)/(6-5)是不是就表示成"12+34+*65-"啊?
    还有就是两个数之间用什么隔开?空格?
    以你上面的1 12 + 3 4 + * 为例,怎么将它判别为是(11+2)*(3+4)还是(1+12)*(3+4)啊?
      

  2.   

    BOOL Present::Doublechar(CString m)
    {
    int Len=m.GetLength();
    int k=0;
    for (int i=0;i<Len;i++)
    {
    k=0;
    for (int j=0;j<Len;j++)
    {
    if (m[i]==m[j])
    {
    k++;
    }
    }
    if (k%2!=0)
    {
    return FALSE;
    }

    }
    return TRUE;
    }