質問編集履歴

2

codeの追加

2017/11/26 13:09

投稿

kinesin_lks
kinesin_lks

スコア8

test CHANGED
File without changes
test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
 
54
54
 
55
- '''Python
55
+ ```Python
56
56
 
57
57
  import copy
58
58
 
@@ -146,4 +146,4 @@
146
146
 
147
147
 
148
148
 
149
- '''
149
+ ```

1

コードの追加

2017/11/26 13:08

投稿

kinesin_lks
kinesin_lks

スコア8

test CHANGED
File without changes
test CHANGED
@@ -41,3 +41,109 @@
41
41
  print(list[0][:3])
42
42
 
43
43
  ```
44
+
45
+
46
+
47
+ /*-------------------追記----------------------*/
48
+
49
+ 実際のコードは競プロのものなので、似たものを追加いたします。
50
+
51
+ コードの目的はリストのなかでしりとりをさせるものです。
52
+
53
+
54
+
55
+ '''Python
56
+
57
+ import copy
58
+
59
+
60
+
61
+ list = ["スライド", "ドングリ", "ドミノ", "ドンブリ", "ヌードル"]
62
+
63
+
64
+
65
+ def search(data, i, order):
66
+
67
+ data[i][3] = 1
68
+
69
+ for j in range(len(data)):
70
+
71
+ if j == len(data) - 1: print('fin')
72
+
73
+ elif data[i][2] == data[j][1]:
74
+
75
+ # search
76
+
77
+ # もし最後の文字と最初の文字が同じものがあれば再帰させる
78
+
79
+ order.append(len(order))
80
+
81
+ search(data, j, order)
82
+
83
+ return order
84
+
85
+
86
+
87
+ def main():
88
+
89
+ # 最初の一文字を格納するためのリスト
90
+
91
+ s_list = []
92
+
93
+ # 最後の一文字を格納するためのリスト
94
+
95
+ e_list = []
96
+
97
+ # しりとりの順番を格納するためのリスト
98
+
99
+ order = []
100
+
101
+ # 単語、一文字目、最後の文字をまとめて格納するためのリスト
102
+
103
+ m_list = []
104
+
105
+ # m_listを全単語分まとめて格納するためのリスト
106
+
107
+ data = []
108
+
109
+
110
+
111
+ for i in list:
112
+
113
+ s_list.append(i[0:3])
114
+
115
+ e_list.append(i[len(i) - 3:])
116
+
117
+ for i in range(len(list)):
118
+
119
+ m_list.append(list[i])
120
+
121
+ m_list.append(s_list[i])
122
+
123
+ m_list.append(e_list[i])
124
+
125
+ m_list.append(0)
126
+
127
+ data.append(copy.deepcopy(m_list))
128
+
129
+ del m_list[:]
130
+
131
+
132
+
133
+ for i in range(len(data)):
134
+
135
+ m_data = search(copy.deepcopy(data), copy.deepcopy(i), copy.deepcopy(order))
136
+
137
+ # search関数より得られた順番を出力
138
+
139
+ print(str(m_data).decode('string-escape')
140
+
141
+
142
+
143
+ if __name__ == '__main__':
144
+
145
+ main()
146
+
147
+
148
+
149
+ '''