单词统计
作者: wanyan
时间限制: 1s
章节: 字符串
问题描述
从键盘上输入一个整数N,并输入N行字符串。每行字符串都包含多个单词,单词之间以空格分开。请输出每行字符串中单词的个数。
说明:以空格分隔开的任何字符串都认为是单词。比如"I'm"认为是一个单词
输入说明
首先输入一行,包含一个整数N,表示共测试N组数据。
后面接着输入N行,每行为一个字符串,字符串长度小于等于50。每个字符串中包含多个单词,单词之间以空格分隔。
输出说明
对每组测试数据,你的程序需要向标准输出文件(通常为启动该程序的终端)依次输出字符串中单词的个数。每个输出占一行,在行首和行尾不要输出多余的空格。在所有数据前后,以及两组数据之间不要输出多余的空行。
输入范例
3
i am a boy.
byebyetoyou
haha , meet you again!
输出范例
4
1
5
总结:本题通过一个inword标记当前是否在单词中,遍历到空格时说明不在单词,置为false,遍历到字符设为true并计数。
#include<iostream>
#include<string>
using namespace std;
int main(){
int N;
string s;
cin>>N;
cin.ignore();
for(int i=0;i<N;i++){
getline(cin,s);
int num=0;
bool inWord=false;
for(int j=0;j<s.length();j++){
if(s[j]!=' '){
if(!inWord){
num++;
inWord=true;
}
}
else{
inWord=false;
}
}
cout<<num;
if(i!=N-1) cout<<endl;
}
return 0;
}
转换成十进制
作者: Turbo
时间限制: 1s
章节: 字符串
问题描述
编写一个程序,将一个2~20以内任意进制数转换成十进制。这些数据由数字0-9,大写字母A-J组成,其中A=10,B=11......J=19。例如16进制数5A转换为十进制数90(90=5*16+10*1)。
输入说明
程序需要输入多组数据,每组数据一行,每行有两个数,用空格隔开,分别表示当前进制数和被转换的数据。输入数据十进制数大小不会超过10000,例如:16 5A 表示将16进制数5A转换成10进制数。
输出说明
对于每行输入数据需输出一个结果。每个结果为一个十进制的数。例如:16 5A需输出结果90。
输入范例
16 5A
2 1111111
输出范例
16 5A
2 1111111
总结:本题是进制转换的简单题,注意不要越界。
#include<iostream>
#include<string>
using namespace std;
int fun(int n,string num){
int k=1;
int s=0;
for(int i=num.length()-1;i>=0;i--){
if(num[i]>='0'&&num[i]<='9'){
s+=(num[i]-'0')*k;
}
else{
s+=(num[i]-'A'+10)*k;
}
k=k*n;
}
return s;
}
int main(){
int n;
string num;
bool first=true;
while(cin>>n>>num){
if(!first)cout<<endl;
first=false;
cout<<fun(n,num);
}
return 0;
}
十进制转换成其它进制
作者: Turbo
时间限制: 1s
章节: 字符串
问题描述
编写一个程序,将一个十进制数转换成任意的2~20以内的其他进制数。这些数据由数字0-9,字母A-J组成,其中A=10,B=11......J=19。例如90转换为16进制数为5A(90=5*16+10*1)。
输入说明
程序需要输入多组数据,每组数据一行,每行有两个数,用空格隔开,分别表示十进制数和转换成的进制数。输入数据不会超过10000,例如:90 16 表示将90转换成16进制数。
输出说明
对于每行输入数据需输出一个结果。每个结果包含为一个20以内的进制的数。输出的字母都为大写字母。例如:90 16需输出结果5A。
输入范例
127 2
90 16
输出范例
1111111
5A
总结:本题十进制转其他进制,先余后除即可,比较简单。
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string fun(int n,int jz){
string s="";
int t;
while(n>0){
t=n%jz;
n=n/jz;
if(t>=0&&t<=9){
s+=char(t+'0');
}
else{
s+=char(t-10+'A');
}
}
reverse(s.begin(),s.end());
return s;
}
int main(){
int n,num;
bool first=true;
while(cin>>n>>num){
if(!first)cout<<endl;
first=false;
cout<<fun(n,num);
}
return 0;
}
最大相同子串
作者: Turbo
时间限制: 1s
章节: 字符串
问题描述
输入两个字符串,获取两个字符串中最长相同子串并输出。
如果有多个相同子串,则输出(按ASCII排序)最小的那个"最长相同子串"。
如果无相同子串,则输出空字符串(即空行)。
输入说明
输入多组测试数据,每组测试数据包含两行。
每行包含一个字符串,字符串中无空格,也无空字符串。
输出说明
对于每组测试数据,输出最长子串。如果最长子串为空,则输出一个空行。
每组输出占一行,行首与行尾无多余空格,也无多余空行。
输入范例
abcded123456aabbcc
abcdaa1234
abcdabcdabcd
abcda
输出范例
1234
abcda
总结:本题考察遍历字符串,注意不要改变循环设置的变量。
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main(){
string s,t;
while(getline(cin,s)){
getline(cin,t);
int maxLen = 0;
string result = "";
for(int i=0;i<s.length();i++){
for(int j=0;j<t.length();j++){
int k = i, l = j;
int count = 0;
while(k < s.length() && l < t.length() && s[k] == t[l]){
k++;
l++;
count++;
}
if(count > maxLen){
maxLen = count;
result = s.substr(i, count);
}
else if(count == maxLen && count > 0){
string temp = s.substr(i, count);
if(temp < result){
result = temp;
}
}
}
}
cout << result << endl;
}
return 0;
}
英语翻译:
Pretrained models have become a dominant paradigm in modern artificial intelligence. These models are first trained on large-scale datasets to learn general representations and then fine-tuned on specific downstream tasks. This approach significantly reduces the need for labeled data and improves model performance. In natural language processing, models like BERT and GPT are pre-trained using self-supervised learning objectives. Fine-tuning allows these models to adapt to tasks such as text classification, sentiment analysis, and question answering. Transfer learning plays a crucial role in this process by leveraging knowledge from one domain to another. Despite their effectiveness, pretrained models require substantial computational resources, raising concerns about efficiency and environmental impact.
预训练模型已经成为了现代人工智能中的主要模式。这些模型在大规模的数据集上首次训练来学习通用的表现形式,然后再特定的下游任务中微调。这个方法极大地减少了对标签数据的需求,提升了模型的性能。在自然语言处理中,像BERT和GPT这样的模型通过自我监督学习目标进行预训练。微调允许这些模型适配文字分类,情感分析和问答这类任务。迁移学习在这一过程发挥巨大作用,通过将一个领域的知识应用到另一领域。尽管他们的效率很高,预训练模型需要大量的计算资源。这引发了对效率和环境影响的担忧。