文字列の均等分割
この問題は、除算だけでははく算術演算とか、文字列の長さをstrlenの類いで測るとかをしなくても、多分書けるのではないかと思います。
Posted feedbacks - Smalltalk
Squeak Samlltalk で。
shiro さんの #4217 の考え方をお借りして。
shiro さんの #4217 の考え方をお借りして。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | | sample divide |
divide := [:sourceStr :numOfLines |
| stream ones zeros |
stream := sourceStr readStream.
ones := (sourceStr as: Array) atAllPut: 1.
zeros := Array new: numOfLines withAll: 0.
(ones, zeros groupsOf: numOfLines atATimeCollect: [:group | group]) sum
collect: [:numOfChars | stream next: numOfChars]].
sample := 'ゆめよりもはかなき世のなかをなげきわびつゝあかしくらすほどに四月十よひにもなりぬれば木のしたくらがりもてゆく'.
divide value: sample value: 4.
"=> #('ゆめよりもはかなき世のなかを' 'なげきわびつゝあかしくらすほ' 'どに四月十よひにもなりぬれ' 'ば木のしたくらがりもてゆく') "
divide value: sample value: 5.
"=> #('ゆめよりもはかなき世の' 'なかをなげきわびつゝあ' 'かしくらすほどに四月十' 'よひにもなりぬれば木の' 'したくらがりもてゆく') "
divide value: sample value: 6.
"=> #('ゆめよりもはかなき' '世のなかをなげきわ' 'びつゝあかしくらす' 'ほどに四月十よひに' 'もなりぬれば木のし' 'たくらがりもてゆく') "
|




nobsun
#4090()
Rating-1/3=-0.33
1 reply [ reply ]