たのしい工学

プログラミングを学んで、モノをつくりたいひと、効率的に仕事をしたい人のための硬派なブログになりました

AtCoder Beginner Contest 141 B Tap Dance

   

AtCoder Beginners Contest 141のB問題についてのメモです。初心者がおちいるポイントをまとめました。

初心者が注意したいポイント

文字列の標準入力について

文字列の文字を一文字づつ走査する場合にはフォーマット記述子%sで読み込み

scanf("%s",&S);

すると、文字のひとつずつを配列のひとつとして読み込むので、各文字をインデックス参照することができるようになります。また、この場合、配列の最後には、¥0のnull文字が入ります。この存在を忘れてデータの操作を行うと、ドツボにはまるので気をつけましょう。

#include <cstdio>
#include <cmath>
#include <algorithm>
#include <math.h>
#include <numeric>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <vector>
#include <string>
#define LL long long
#define rep(i,n) for(i=0;i&lt;=(n-1);i++)
using namespace 

char S[100];
int len,i;
int flg;

// func: get char type str length.
int length(char x[]){
int i;
while(x[i]){
i++;
}
return i;
}

int main(){

scanf("%s",&S);

len = length(S);

flg=0;

rep(i,len){

if((i+1)%2==0){

if(!(S[i]=='L'||S[i]=='U'||S[i]=='D')){

flg=1;
}

}else{

if(!(S[i]=='R'||S[i]=='U'||S[i]=='D')){

flg=1;

}

}

}

flg==1?puts("No"):puts("Yes");

return 0;
}

今回はここまで

 - コンピュータサイエンス, アルゴリズム