9度OJ 1505両のチェーンテーブルの最初の共通ノード【データ構造】
1730 ワード
タイトル住所:http://ac.jobdu.com/problem.php?pid=1505
テーマの説明:
二つのチェーンを入力して、最初の共通点を探してください.
入力:
入力には複数のテストサンプルが含まれています.各テストケースに対して、入力される第1の挙動の2つの整数mとn(1<=m,n<=1000):入力される2つのチェーンの要素の個数を表します.次の2行は、第1行目のチェーンのすべての要素で、中間はスペースで区切られます.第二の行為の第二のチェーンのすべての要素は、中間はスペースで区切られます.
出力:
各テストケースに対応して、2つのチェーンテーブルの最初の共通ノードの値を出力します.二つのチェーンが共通の結節点がない場合、「My God」を出力します.
サンプル入力:
何海涛--プログラマの面接試験問題は100題を精選します(35)-両チェーンの最初の公共結点[データ構造]
テーマの説明:
二つのチェーンを入力して、最初の共通点を探してください.
入力:
入力には複数のテストサンプルが含まれています.各テストケースに対して、入力される第1の挙動の2つの整数mとn(1<=m,n<=1000):入力される2つのチェーンの要素の個数を表します.次の2行は、第1行目のチェーンのすべての要素で、中間はスペースで区切られます.第二の行為の第二のチェーンのすべての要素は、中間はスペースで区切られます.
出力:
各テストケースに対応して、2つのチェーンテーブルの最初の共通ノードの値を出力します.二つのチェーンが共通の結節点がない場合、「My God」を出力します.
サンプル入力:
5 4
1 2 3 6 7
4 5 6 7
3 3
1 5 7
2 4 7
2 3
1 3
4 5 6
サンプル出力:6
7
My God
#include <stdio.h>
int main(void){
int m, n;
int list1[1000];
int list2[1000];
int i;
int index1, index2;
while (scanf("%d%d", &m, &n) != EOF){
for (i = 0; i < m; ++i)
scanf("%d", &list1[i]);
for (i = 0; i < n; ++i)
scanf("%d", &list2[i]);
if (m >= n){
index1 = m - n;
index2 = 0;
}
else{
index1 = 0;
index2 = n - m;
}
while (index1 < m && index2 < n){
if(list1[index1] == list2[index2])
break;
++index1;
++index2;
}
if (index1 < m)
printf("%d
", list1[index1]);
else
printf("My God
");
}
return 0;
}
参考資料:何海涛--プログラマの面接試験問題は100題を精選します(35)-両チェーンの最初の公共結点[データ構造]