精华内容
下载资源
问答
  • 描述 按照字典规则比较两个英文字符串的大小,基本规则如下: (1)字符串左对齐比较 ...(4)字符串中只有大小写字母和空格空格小于任何字母 例如:"aBc"<"abc","abcdef"<"abD","Abcd"<"abc" 格式 ...

    描述

    按照字典规则比较两个英文字符串的大小,基本规则如下:

    (1)字符串左对齐比较

    (2)字母无大小写对应关系时忽略大小写,比如'B'不仅大于'A',也大于'a'

    (3)字母有大小写对应关系时,大写小于小写,比如'A'小于'a'

    (4)字符串中只有大小写字母和空格,空格小于任何字母

    例如:"aBc"<"abc","abcdef"<"abD","Abcd"<"abc"

    格式

    输入格式

    输入是两行,每行一个字符串,长度均小于1000

    输出格式

    输出一个整数,表示这两个字符串比较大小的结果。如果第一个小于第二个,输出-1;
    如果第一个大于第二个,输出1;相等则输出0。

    样例

    输入样例

    your
    you

    输出样例

    1

    限制

    时间限制:100 ms

    内存限制:8192 KB

    #include <bits/stdc++.h>
    using namespace std;
    
    int main(){
    	string s1, s2;
    	getline(cin, s1);
    	getline(cin, s2);
    	int n1 = s1.length();
    	int n2 = s2.length();
    	int flag = 0;
    	int num, tmp;
    	if (n1 < n2) {
    		num = n1;
    	} else {
    		num = n2;
    	}
    	for (int i=0; i<num; i++) {
    		if (s1[i]>=65 && s1[i]<=90) {
    			if (s2[i]>=65 && s2[i]<=90) {
    				if (s1[i] > s2[i]) {
    					flag = 1;
    					break;
    				} else if (s1[i] < s2[i]){
    					flag = -1;
    					break;
    				}				
    			} else if (s2[i]>=97 && s2[i]<=122) {
    				if (s2[i]-s1[i] == 32){
    					flag = -1;
    					break;
    				} else {
    					tmp = s1[i] + 32;
    					if (tmp > s2[i]) {
    						flag = 1;
    					} else {
    						flag = -1;
    					}
    					break;
    				}
    			} else {
    				flag = 1;
    				break;
    			}
    		} else if (s1[i]>=97 && s1[i]<=122){
    			if (s2[i]>=97 && s2[i]<=122) {
    				if (s1[i] > s2[i]) {
    					flag = 1;
    					break;
    				} else if (s1[i] < s2[i]) {
    					flag = -1;
    					break;
    				}
    			} else if (s2[i]>=65 && s2[i]<=90) {
    				if (s1[i]-s2[i] == 32) {
    					flag = 1;
    					break;
    				} else {
    					tmp = s2[i] + 32;
    					if (tmp > s1[i]) {
    						flag = -1;
    					} else {
    						flag = 1;
    					}
    					break;
    				}
    			} else {
    				flag = -1;
    				break;
    			}
    		} else {
    			if (s1[i] == s2[i]){
    				flag = 0;
    			} else if (s1[i] > s2[i]) {
    				flag = 1;
    				break;
    			} else {
    				flag = -1;
    				break;
    			}
    		}
    
    	}
    	if (flag == 0 && n1>n2) {
    		printf ("1");
    		return 0;
    	} else if (flag == 0 && n1<n2) {
    		printf ("-1");
    		return 0;
    	}
    	printf ("%d", flag);
    	
        return 0;
    }

     

    展开全文
  • 借助本题我们来复习一下string类。 先看题: 一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。...请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。 基本规则: (1)输入每手...

    借助本题我们来复习一下string类。

    先看题:

    一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):
    3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER
    输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如:4 4 4 4-joker JOKER。
    请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。
    基本规则:
    (1)输入每手牌可能是个子、对子、顺子(连续5张)、三个、炸弹(四个)和对王中的一种,不存在其他情况,由输入保证两手牌都是合法的,顺子已经从小到大排列;
    (2)除了炸弹和对王可以和所有牌比较之外,其他类型的牌只能跟相同类型的存在比较关系(如,对子跟对子比较,三个跟三个比较),不考虑拆牌情况(如:将对子拆分成个子);
    (3)大小规则跟大家平时了解的常见规则相同,个子、对子、三个比较牌面大小;顺子比较最小牌大小;炸弹大于前面所有的牌,炸弹之间比较牌面大小;对王是最大的牌;

    (4)输入的两手牌不会出现相等的情况。

    输入描述:

    输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如 4 4 4 4-joker JOKER。

    输出描述:

    输出两手牌中较大的那手,不含连接符,扑克牌顺序不变,仍以空格隔开;如果不存在比较关系则输出ERROR。

    输入

    4 4 4 4-joker JOKER
    

    输出

    joker JOKER

    string类: 

    1、字符串拼接 (+=)

    可以使用str3 += "xxx";

    这样可以直接追加;

    还可以利用append的方式,追加某段字符的前n个。

    string str3 = "I";
    	str3.append(" love ");
    	str3.append("game abcde", 4);

    2、字符串查找 (find & rfind & replace)

    find("xxx");

    在母串中查找子串,并返回子串的地址。

    如:

    	string str = "55522";
    	int pos = str.find("52");
    	cout << pos;

    返回值为2。(下标从零开始)

    rfind是从右边开始。

    replace(起始位置,终止位置,替换字符串);

    这里会把新字符串,替换起始位置到终止位置的字符串。

    3、字符串比较(compare) 

    = 返回 0

    > 返回 1

    < 返回 -1

    从第一个字符串开始,依次向后比较。

    4、字符串存取(str.at(num))

    string中单个字符存取方式有两种

    • char& operator[](int n); //通过[]方式取字符
    • char& at(int n); //通过at方法获取字符

    5、string插入和删除(insert & erase)

        string str = "hello";
    	str.insert(1, "111");
    	cout << str << endl;
     
    	str.erase(1, 3);  //从1号位置开始3个字符
    	cout << str << endl;

    输出:

    6、子串(substr)

    • string substr(int pos = 0, int n = npos) const; //返回由pos开始的n个字符组成的字符串

    注意!这里的第一个参数是起始位置,第二个参数是返回的字符数量,并不是终止位置。

    分割Email:

     

    现在来分析题:

    首先,对于牌来说,分两种情况:

    1、牌型不同

    牌型不同的情况只有两种:

    左右至少一处出现炸弹和王炸。

    这种情况,如果左右至少一处出现了王炸,那么直接输出王炸即可;

    如果双方均无王炸,那么计算左右两边空格的个数,

    炸弹的空格个数为3,其余牌均不为3。

    输出为3的那副牌即可。

    2、牌型相同

    对于牌型相同,我们需要先在定义两个临时牌,并追加空格。

    然后找第一个元素:

    找到第一个元素后,再通过其在poker中的下标,来判定大小。

    用find函数和substr函数来获取第一个牌面大小,然后比较即可。

     

    如何比较牌的大小呢?

    我们可以将牌存入到一个字符串中。

    string poker = "345678910JQKA2jokerJOKER"

    先利用字符串查找函数,找到输入中的符号"-",

    然后通过这个位置进行分割,得到前后两手牌。

    先后进行牌型不同和相同的判定,最后得出答案。

     

    代码:

    #define _CRT_SECURE_NO_WARNINGS 1
    
    #include <stdio.h>
    #include <iostream>
    #include <list>
    #include <string>
    #include <algorithm>
    
    using namespace std;
    
    void test01()
    {
    	string poker = "345678910JQKA2jokerJOKER";
    	string in;
    	while (getline(cin, in))
    	{
    		int pos;
    		pos = in.find("-");
    		string left, right;
    		left = in.substr(0, pos);
    		right = in.substr(pos + 1);
    		int count_left = count(left.begin(), left.end(), ' ');
    		int count_right = count(right.begin(), right.end(), ' ');
    		//牌型不同
    		if (count_left != count_right)
    		{
    			if (left == "joker JOKER" || right == "joker JOKER")
    			{
    				cout << "joker JOKER" << endl;
    			}
    			else if(count_left == 3)
    			{
    				cout << left<<endl;
    			}
    			else if(count_right == 3)
    			{
    				cout << right<<endl;
    			}
    			else
    			{
    				cout << "ERROR" << endl;
    			}
    		}
    		//牌型相同
    		else
    		{
    			string leftret;
    			string rightret;
    			leftret = left+" ";
    			rightret = right+ " ";
    			int leftpos = leftret.find(" ");
    			int rightpos = rightret.find(" ");
    			string left1 = leftret.substr(0, leftpos);
    			string right1 = rightret.substr(0, rightpos);
    			int leftnum = poker.find(left1);
    			int rightnum = poker.find(right1);
    			if (leftnum > rightnum)
    			{
    				cout << left << endl;
    			}
    			else
    			{
    				cout << right << endl;
    			}
    		}
    	}
    	
    }
    
    int main()
    {
    	test01();
    	return 0;
    }

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 算法描述:在while循环里面运用文件结束符实现多行输入,然后运用条件语句依次判断出每行三个字符按照ASCII码排序出来的大小关系。 //输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符

    编程实现以下功能:
    题目描述:输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
    输入:输入数据有多组,每组占一行,有三个字符组成,之间无空格。
    输出:对于每组输入数据,输出一行,字符中间用一个空格分开。
    样例输入:
    qwe
    asd
    zxc
    样例输出:
    e q w
    a d s
    c x z

    算法描述:在while循环里面运用文件结束符实现多行输入,然后运用条件语句依次判断出每行三个字符按照ASCII码排序出来的大小关系。

    //输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
    #include <stdio.h>
    
    int main(void)
    {
        char a,b,c,tmp;
        while(scanf("%c%c%c%*c",&a,&b,&c)!=EOF)//用"%*c"(空字符,不存储字符的字符)滤掉回车;EOF为文件结束符。
        {
            if(a>b) tmp=a,a=b,b=tmp;   
            if(a>c) tmp=a,a=c,c=tmp;
            if(b>c) tmp=b,b=c,c=tmp;
            printf("%c %c %c\n",a,b,c);
        }
        return 0;
    }
    
    展开全文
  • 字符编码学习

    2015-05-05 15:16:33
    ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一...
  • 可以利用字母的大小关系将输入的字符串中的标点符号和空格去掉(利用过滤函数) 利用普通的方法 Python代码如下: 1 #encoding=utf-8 2 #查找给定的字符串中的重复元素 3 4 #用于删除列表中不是字母的...

    可以利用字母的大小关系将输入的字符串中的标点符号和空格去掉(利用过滤函数)

    利用普通的方法

    Python代码如下:

     1 #encoding=utf-8
     2 #查找给定的字符串中的重复元素
     3 
     4 #用于删除列表中不是字母的元素
     5 def delete(alist):
     6     for i in alist:
     7         if (i>= 'A' and i <= 'Z' or i>= 'a' and i <= 'z'):
     8             return True
     9         else:
    10             return False
    11 
    12 
    13 the_string = raw_input("please enter a character string:")
    14 the_string = list(the_string)
    15 the_string = filter(delete,the_string)    #将列表中不是字母的元素过滤掉
    16 norepeat = []
    17 the_repeat = []
    18 for x in the_string:
    19     if x not in  norepeat:
    20         norepeat.append(x)
    21     else:
    22         if x in the_repeat:
    23             pass
    24         else:
    25             the_repeat.append(x)
    26 print  "the repeat character is %s"% the_repeat

     利用Python中特有的set()可以简化,涉及到消除重复的问题,Python中自带的set()可以自动的消除元素中的重复

    Python代码如下:

     1 #查找给定的字符串中的重复元素
     2 #用于删除列表中不是字母的元素
     3 def delete(alist):
     4     for i in alist:
     5         if (i>= 'A' and i <= 'Z' or i>= 'a' and i <= 'z'):
     6             return True
     7         else:
     8             return False
     9 
    10 the_string = raw_input("please enter a character string:")
    11 the_string = list(the_string)
    12 the_string = filter(delete,the_string)    #将列表中不是字母的元素过滤掉
    13 the_repeat = set()
    14 norepeat = set()
    15 for x in the_string:
    16     if x not in norepeat:
    17         norepeat.add(x)
    18     else:
    19         the_repeat.add(x)
    20 print "the repeat character is %s"%the_repeat

    转载于:https://www.cnblogs.com/xiaoli2018/p/4417348.html

    展开全文
  • 扑克牌大小

    2020-07-12 14:23:55
    牌面从小到大用如下字符字符串表示(其中,小写joker表示小 王,大写JOKER表示大王): 3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER 输入两手牌,两手牌之间用"-“连接,每手牌的每张牌以空格分隔,”-"两边没有空格...
  • 比较扑克牌大小

    2020-07-02 10:28:01
    比较扑克牌大小 题目描述 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。...请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。 基本规则: (1)输入每
  • 扑克牌大小-牛客

    2020-06-19 00:00:14
    题目: 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各4张,小王1张,大王1张。...请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR 基本规则: (1)输入每手牌可能是个子,对子,顺
  • 本文为大家分享了华为校园招聘上机笔试题,供大家参考,具体内容如下 [编程题] 扑克牌大小 时间限制:10秒 空间限制:131072K 扑克牌游戏大家应该都...请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR
  • 题目描述 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各4张,小王1张,大王1张。...请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR 基本规则: (1)输入每手牌可能是个子,对子,
  • 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各4张,小王1张,大王1张。...请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR 基本规则: (1)输入每手牌可能是个子,对子,顺子
  • printf("输入两个整数(用空格分开)判断大小:"); //输出 字符串 scanf("%d %d",&x,&y); //输入 x和y的值, //scanf()为内置的输入函数 z=max(x,y); //先调用max()函数, //再将max()函数返回的值赋给...
  • 字符类型 char 1~2000字节 固定长度字符串,长度不够的用空格补充 varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) ...
  • 2018年9月计算机一级MSOffice...2.在下列关于字符大小关系的说法中,正确的是()。 A.空格>a>A B.空格>A>a C.a>A>空格 D.A>a>空格 3.声音与视频信息在计算机内的表现形式是()。 A.二进制数字
  • 今天做到一题,感觉用string会比较方便。c语言的字符串数组简直太麻烦了啊喂!(好吧其实是因为我懒 好的下面开始搜集资料过程。...3.stra.compare("strb"):判断a,b的大小关系。相等return 0,a>b return正数,a
  • 2.关系运算符:数据的大小比较的运算 返回结果为True 或 False ,另外,字符的比较是用字符的 Unicode 码进行的,例如"a">"A"为 True,因为"a"的 Unicode 值 比"A"的大,在字符比较中有以下规律: 空格<“0...
  • 华为上机笔试题

    2020-07-05 10:47:13
    华为上机笔试题扑克牌大小 扑克牌大小 链接 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。...请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。 基本规
  • 第四行的输出语句格式控制串中,两格式串%d 之间加了一个空格(非格式字符),所以输出的a,b值之间有一个空格。第五行的printf语句格式控制串中加入的是非格式字符逗号, 因此输出的a,b值之间加了一个逗号。第六行的...
  • 字符a”送给c1,字符“ ”送给c2,字符“b”送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。 10.输入输出的数据类型与所用格式说明符不一致。 例如,a已定义为整型,b定义为实型 a=3;b=...
  • 第一行为一个自然数n,表示顶点的个数,第二行为n个大写字母构成的字符串,表示顶点,接下来是为一个n*n大小的矩阵,表示图的邻接关系。数字为0表示不邻接,否则为相应的边的长度。最后一行为一个字符,表示要求进行...
  •  上面我们见到的\x,\n,\a等等都是叫转义字符,它告诉编译器需要用特殊的方式进行处理。下面给出所有的转义字符和所对应的意义:  转义字符 描述  \' 单引号  \ 双引号  \\ 反斜杠  \0 空字符  \ccc (最多三位...
  • 会计理论考试题

    2012-03-07 21:04:40
    19.系统软件与应用软件的相互关系是 __D___ 。 A、前者以后者为基础 B、每一类都以另一类为基础 C、每一类都不以另一类为基础 D、后者以前者为基础 20.计算机辅助设计软件主要用于___B___。 A、文字处理 B、制图和...
  • Microsoft C# Windows程序设计(上下册)

    热门讨论 2011-08-05 10:28:13
    目录 第一章 控制台本身 1.1 c#版本 1.2 程序分析 1.3 c#名称空间 1.4 控制台i/o ...c.8 去首尾空格和填充字符串 c.9 字符串操作 c.10 格式化字符串 c.11 数组排序和搜索 c.12 stringbuilder类
  • 在max函数中比较a,b的大小,把大者返回给主函数的变量z,最后在屏幕上输出z的值。 C源程序的结构特点 1.一个C语言源程序可以由一个或多个源文件组成。 2.每个源文件可由一个或多个函数组成。 3.一个源程序不论由...
  • C语言的科学和艺术.pdf

    热门讨论 2012-01-19 14:09:05
    《C语言的科学和艺术》,原名《The Art and Science of C: A Library-Based Introduction to Computer Science》,作者:【美】Eric S. Roberts,翻译:翁惠玉、张冬茉、杨鑫、蒋文新,出版社: 机械工业出版社,...
  • 在max函数中比较a,b的大小,把大者返回给主函数的变量z,最后在屏幕上输出z的值。 1.9 C源程序的结构特点 1.一个C语言源程序可以由一个或多个源文件组成。 2.每个源文件可由一个或多个函数组成。 3.一个源程序...
  • freemarker总结

    2015-01-04 14:22:05
    [ {“Akey”:”Avalue”},{“Akey1”:”Avalue1”}, {“Bkey”:”Bvalue”},{“Bkey1”:”Bvalue1”}, ] hashes {“you”:”a”,”me”:”b”,”he”:”c”} 注释标志 这里是注释 --> 旧版本的freemarker采用...

空空如也

空空如也

1 2 3 4 5 6
收藏数 103
精华内容 41
关键字:

aa字符大小关系空格