7 条题解
-
4
C++选手表示不服那只能我上了。
#include <bits/stdc++.h> using namespace std; map<string,int> m;//STL大法好! string s,k; int cnt,siz; int main(){ while (cin>>s&&s[s.size()-1]!='.'){ if (!m[s]){ m[s]=++cnt; } siz+=s.size(); } siz+=s.size(); for (int i=0;i<s.size()-1;i++){//注意末尾的句号不能算! k+=s[i]; } m[k]=++cnt; cin>>s; cout<<(m[s]?m[s]:siz-1);//同上,去除句号 return 0; }
-
3
#include <iostream> #include <string> #include <cmath> using namespace std; int main() { string str1; string str2; int num1 = 0; int word_number = 1; int nearest = 9999; int num2 = 0;//记录空格个数 getline(cin, str1); getline(cin, str2);//这两个用来接收字符串 str2 = " " + str2 ;//最重点!!在前面添加空格证明是单词,不然this中的is会被误判 int a = str1.find(str2);//找到匹配的位置 if (a >= 0) { for (int i = 0; i < str1.size(); i++) { if (str1[i] == ' ') { num2++; if (abs(i - a) < nearest) { nearest = abs(i - a);//空格离单词最近 if (nearest == 0) { break;//0就是最近,不可能更小,直接break跳出循环 } } } } cout << num2 + 1;//单词是空格个数的下一个,所以加一 } else if (a < 0) { for (int i = 0; i < str1.size(); i++) { if ((str1[i] > 64 && str1[i] < 91) || (str1[i] > 96 && str1[i] < 123))//ASCII码中字母对应的值 { num1++; } } cout << num1; } return 0; }
-
1
嗨害嗨,我又来了。 今天讲讲P4[ 我是第几个单词]
思路
'''1.分割字符串(' ') 2.判断:要找的单词在不在序列中? (2.1)在:打印索引+1(Python 3的奇葩方式:位置=索引+1) (2.2)不在:遍历列表,算出索引的长度(字符串) '''
代码
#(1) a=input() a=a.rstrip('.') #防止把'.'也算进去,rstrip用于除去字符串右边的指定字符 a=a.split()#分割字符串 b=input() if b in a:#(2.1) print(a.index(b)+1)#python 3的坑爹行为。 else:#(2.2) s=0 for i in a: s+=len(i) print(s)
Loading:15/100……
- 1
信息
- ID
- 4
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 3
- 标签
- 递交数
- 204
- 已通过
- 115
- 上传者