XM
1 ascii的值 'A' 65
2 for 循环终止条件 用*p 表示 取完所有
3 指针 直接++,直接加了对应类型的地址长度
4 scanf("%s",bfr); 输入 %d整形 %s 字符串 %c 字符。内容给到后面的数组里
scanf 后面一定要跟地址!!!
scanf 不能输入空格
统计字母 直接用一个数组去统计
XM2描述
世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?
int countBitDiff(int m, int n ) {
int i, cnt = 0;
for(i = 0;i<32;i++)
{
if(((n>>i)&1) != ((m>>i)&1))
{
cnt++;
}
}// write code here
return cnt;
}
XM4描述
输入描述:
输出描述:
#include "stdio.h"
#include "stdlib.h"
int main() {
char bfr[10001];
int T;
scanf("%d",&T);
int letterCount[26];
while(T--)
{
scanf("%s",bfr);
memset(letterCount,0,26*sizeof(int));
char* p;
for(p=bfr;*p;p++)
{
letterCount[*p-'A']++;
}
int numCount[10];
/*
0 ZERO Z 2->0
1 ONE O 3->1
2 TWO W 4->2
3 THREE R 5->3
4 FOUR U 6->4
5 FIVE F 7->5
6 SIX X 8->6
7 SEVEN S 9->7
8 EIGHT G 0->8
9 NINE I 1->9
ABCDEFG HIJ K L M N O P Q R S T U V W X Y Z
0123456 789 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
*/
numCount[0] = letterCount[25];
numCount[2] = letterCount[22];
numCount[4] = letterCount[20];
numCount[6] = letterCount[23];
numCount[8] = letterCount[6];
numCount[1] = letterCount[14]-numCount[0]-numCount[2]-numCount[4];
numCount[3] = letterCount[17]-numCount[0]-numCount[4] ;
numCount[5] = letterCount[5]-numCount[4];
numCount[7] = letterCount[21]-numCount[5];
numCount[9] = (letterCount[13]-numCount[1]-numCount[7])/2;
while(numCount[8]--) printf("%c",'0');
while(numCount[9]--) printf("%c",'1');
while(numCount[0]--) printf("%c",'2');
while(numCount[1]--) printf("%c",'3');
while(numCount[2]--) printf("%c",'4');
while(numCount[3]--) printf("%c",'5');
while(numCount[4]--) printf("%c",'6');
while(numCount[5]--) printf("%c",'7');
while(numCount[6]--) printf("%c",'8');
while(numCount[7]--) printf("%c",'9');
printf("\n");
}
}
XM5描述
输入描述:
输出描述:
int main() {
int t,letterlen = 0,wordlen = 1;
char* p;
char input[1000];
int wordnum[50];
int wordcnt = 0;
gets(input);
wordnum[0]=0;
for(p=input;*p;p++)
{
if(*p == ' ')
{
wordnum[++wordcnt] = letterlen+1;
wordlen++;
}
letterlen++;
}
input[letterlen] = ' ';
for(t= wordlen-1;t>=0;t--)
{
while(input[wordnum[t]]!=' ')
{
printf("%c",input[wordnum[t]++]);
}
printf("%c",' ');
}
}
XM6描述
输入描述:
输出描述:
#include <stdio.h>
int main() {
int n,a,b,height = 0;
scanf("%d",&n);
int depth[1000];
depth[0] = 1;
for(int k = 0;k<n-1;k++)
{
scanf("%d%d",&a,&b);
depth[b] = depth[a] + 1;
if(depth[b] > height)
{
height = depth[b];
}
}
printf("%d",height);
}
XM17.描述
链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
}
链表节点的值初始化为1,2,3,4,5,6,7。
输入描述:
输出描述:
typedef struct ListNode
{
int m_nKey;
struct ListNode_t* m_pNext;
}ListNode_t;
ListNode_t list[8];
void Listinitfunc(ListNode_t* pxlist,int len)
{
for(int i = 0;i<len-1;i++)
{
pxlist[i].m_nKey = i;
pxlist[i].m_pNext = &pxlist[i+1].m_nKey;
}
pxlist[len-1].m_nKey = len-1;
pxlist[len-1].m_pNext = &pxlist[0].m_nKey;
}
int Listfindfunc(ListNode_t* pxlist,int x,int len)
{
return pxlist[len - x].m_nKey;
}
void main()
{
int x,y;
scanf("%d",&x);
Listinitfunc(list,8);
y = Listfindfunc(list,x,8);
printf("%d",y);
}
XM36描述
输入描述:
输出描述:
int main() {
char* p;
char bfr[65535];
int x = 0,y= 0;
//scanf("%s",bfr);
gets(bfr);
for(p=bfr;(*p)!='\0';p++)
{
if(*p =='[')
{
x++;
if(x>y)
{
y=x;
}
}
else if(*p ==']')
{
x--;
}
}
printf("%d",y);
return 0;
}

浙公网安备 33010602011771号