401 - Palindromes
//1. map 用法
//////////////////////////////////////////
#include <map>
map <char,char> mirror;
mirror['A']='A';
if (mirror['B']) cout<<"ok"<<endl; //ok
/////////////////////////////////////////
//2. 遍历截止位置,注意可能需要等号
for (size_t i=0; i <= (n>>1) ; ++i){
if (!mirror[s[i]] || (mirror[s[i]]!= s[n-1-i])) return false;
}
//3. 考虑所有可能的case
单字母(非mirror)
10010 - Where''s Waldorf?
//1.不要忘记题目给的 条件=.=
搞了半天,忘记了字母是大小写混乱的,
#include <cctype>
islower()处理下;
10361 - Automatic Poetry
//1.非格式化读入
当需要用fgets,getchar(),getline() 等等非格式化方式读入时, 需要注意
在需要读入的数据之前是否有其他 存在的字符(如空格!!,空行!!!)
cin>>tc;
getchar(); //之前有一个\n
fgets(buf,MAXN,stdin);
537 - Artificial Intelligence?
//1.习惯用getchar()处理字符串
//2.小情况可以使用switch()结构
409 - Excuses, Excuses!
//1.warning!!!!!
用 getchar()往数组里填字符时,务必在最后添加 '\0' 来结束;不然鬼知道这结构在哪里结束
for (int i=0; i<k; ++i){
char p;
int j=0;
p=getchar();
while(p!='\n'){
myKeyword[i][j++]=p;
p = getchar();
}
myKeyword[i][j]='\0';
}
//2. <cctype>
isalpha();
tolower();
10878 - Decode the tape
//呵呵 ASCII码
10815 - Andy's First Dictionary'
//1.快排字符串
#include <cstdlib>
int MyWordCompare(const void *a, const void *b){
return strcmp((char*)a, (char *)b);
}
qsort(words, wordCount, sizeof(words[0]), MyWordCompare);
//2.利用 map 标记单词是否存在
644 - Immediate Decodability
//1.WARNING!!!!!
使用getchar()时不能忽略任何一个 \n
//尤其是当每个case是由字符来标示的时候
使用getchar时候要考虑的是 每一个 每一个 每一个 字符!!!!
10115 - Automatic Editing
//1. <cstring>里的工具
strstr(s1,s2); 返回指针, s2在s1中的第一个字符的指针
strcat(s1,s2); 将s2接到s1尾部,自动添加'\0'
strcmp(s1,s2); 将s2赋予s1,自动添加'\0'
//2. <string>里的工具
s1.find(s2); 返回size_t, s2在s1中的位置,未找到返回npos(-1)
s1.replace(n1,n2,s2); 从n1开始替换n2个s2中的字符
//1. map 用法
//////////////////////////////////////////
#include <map>
map <char,char> mirror;
mirror['A']='A';
if (mirror['B']) cout<<"ok"<<endl; //ok
/////////////////////////////////////////
//2. 遍历截止位置,注意可能需要等号
for (size_t i=0; i <= (n>>1) ; ++i){
if (!mirror[s[i]] || (mirror[s[i]]!= s[n-1-i])) return false;
}
//3. 考虑所有可能的case
单字母(非mirror)
10010 - Where''s Waldorf?
//1.不要忘记题目给的 条件=.=
搞了半天,忘记了字母是大小写混乱的,
#include <cctype>
islower()处理下;
10361 - Automatic Poetry
//1.非格式化读入
当需要用fgets,getchar(),getline() 等等非格式化方式读入时, 需要注意
在需要读入的数据之前是否有其他 存在的字符(如空格!!,空行!!!)
cin>>tc;
getchar(); //之前有一个\n
fgets(buf,MAXN,stdin);
537 - Artificial Intelligence?
//1.习惯用getchar()处理字符串
//2.小情况可以使用switch()结构
409 - Excuses, Excuses!
//1.warning!!!!!
用 getchar()往数组里填字符时,务必在最后添加 '\0' 来结束;不然鬼知道这结构在哪里结束
for (int i=0; i<k; ++i){
char p;
int j=0;
p=getchar();
while(p!='\n'){
myKeyword[i][j++]=p;
p = getchar();
}
myKeyword[i][j]='\0';
}
//2. <cctype>
isalpha();
tolower();
10878 - Decode the tape
//呵呵 ASCII码
10815 - Andy's First Dictionary'
//1.快排字符串
#include <cstdlib>
int MyWordCompare(const void *a, const void *b){
return strcmp((char*)a, (char *)b);
}
qsort(words, wordCount, sizeof(words[0]), MyWordCompare);
//2.利用 map 标记单词是否存在
644 - Immediate Decodability
//1.WARNING!!!!!
使用getchar()时不能忽略任何一个 \n
//尤其是当每个case是由字符来标示的时候
使用getchar时候要考虑的是 每一个 每一个 每一个 字符!!!!
10115 - Automatic Editing
//1. <cstring>里的工具
strstr(s1,s2); 返回指针, s2在s1中的第一个字符的指针
strcat(s1,s2); 将s2接到s1尾部,自动添加'\0'
strcmp(s1,s2); 将s2赋予s1,自动添加'\0'
//2. <string>里的工具
s1.find(s2); 返回size_t, s2在s1中的位置,未找到返回npos(-1)
s1.replace(n1,n2,s2); 从n1开始替换n2个s2中的字符