takano32

LL Golf Hole 8 - 横向きのピラミッドを作る (Nested Flatten)

同じようなアルゴリズムをRubyで書いてみましたが、イマイチ・・・to_i, to_i, to_s, to_i ...

1
2
3
(('1' * gets.to_i).to_i ** 2).to_s.scan(/./) do |i|
    puts "#{'*' * i.to_i}\n"
end
LL Golf Hole 5 - 最上位の桁を数え上げる (Nested Flatten)

> また、与えられる自然数には0以外の桁が2回以上登場してはいけません。

という条件付です~。

echoクライアント (Nested Flatten)

クライアント機能に限定したnetcatコマンドを作りなさい、ということかしら?

LL Golf Hole 3 - 13日の金曜日を数え上げる (Nested Flatten)

ぎゃー、すみません。 2013年の間違いです。 修正させていただきました。

lessの実装 (Nested Flatten)
環境に依存するかもしれませんが、書いてみました。
Gentoo Linuxで動作確認してます。
% ruby -v
ruby 1.8.6 (2008-06-20 patchlevel 230) [i686-linux]

less準拠でjk/qが使えます。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/env ruby

require 'curses'

lines = ARGF.readlines
index = 0
LINES = 10
Curses::init_screen


def update(index, lines)
    (index..index+LINES).each do |l|
        Curses::stdscr.setpos(l - index, 0)
        Curses::addstr lines[l]
    end
end

def search(index, lines)
    word = ''
    while (ch = Curses::getch) != 0x0A do
        word += ch.chr
    end
    (index..(lines.size)).each do |l|
        if lines[l].match(word) then
            return l
        end
    end
    return nil
end


update(index, lines)

while ch = Curses::getch do
    case ch
    when ?j
        index += 1 if index < lines.length - LINES
    when ?k
        index -= 1 if 0 < index
    when ?/
        index = search(index, lines) || index
    when ?q
        break
    end
    update(index, lines)
end
コメントの削除 (Nested Flatten)

Rubyの記述がなかったので、書いてみました。 # と =begin, =end しか処理していません。 # これでいいんだっけ・・・?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#!/usr/bin/env ruby

block = false
ARGF.read.each do |line|
        if(block && (line =~ /=end/)) then
                block = false
                next
        end 
        if(block || block = (line =~ /=begin/)) then
                next
        end 
        puts line.gsub(/(.*)#(.*)/, '\1')
end
LL Golf Hole 2 - 文字列に含まれる単語の最初の文字を大文字にする (Nested Flatten)

ご指摘、ありがとうございまっす。 修正させていただきました〜。

うおっ。お恥ずかしい限り・・・ ちょっと直しておきます。orz

何はともあれ、短いコードありがとうございます!

LL Golf Hole 1 - tinyurl.comを使ってURLを短縮する (Nested Flatten)

この仕組みは面白いですね :-)

Rubyでも書いてみました。

1
ruby -ropen-uri -e'eval open("http://ja.doukaku.org/comment/6891/download").read'

こそこそ・・・

1
2
3
#! /usr/bin/env ruby
require 'open-uri'
puts *open('http://tinyurl.com/api-create.php?url=http://ll.jus.or.jp/2008/info/xgihyo')

おおう! あれ?でも、tinyurlを二回使おうとすると変なことに。

と思いつつ、http's':// の https://tinyurl.com/api-create.php?url=http://ll.jus.or.jp/2 008/info/xgihyo を圧縮した http://tinyurl.com/6hyq2m でアクセスしてみたら・・・キター(笑

TinyURL APIとな!?

1
ruby -ropen-uri -e "puts open('http://tinyurl.com/api-create.php?url=http://ll.jus.or.jp/2008/info/xgihyo').read"

回答例が異様に長くてすみません〜。趣旨のご理解ありがとうございます。

まさにそういう感じのコードを待ってました!ありがとうございます!

リストを逆順に表示 (Nested Flatten)
再帰呼び出しを使ってみました。
1
2
3
4
5
6
7
8
def rev(list)
	unless list.empty? then
		puts list.pop
		rev(list)
	end
end

rev(given_list)
JPEGをGETして色反転して保存 (Nested Flatten)
あら? 仕様ですとネットの画像を操作することになっているようですよ。
HTTPでGET (Nested Flatten)
gawkなのだぁ!
1
gawk 'BEGIN{while(("GET http://ja.doukaku.org/feeds/comments/ /inet/tcp/0/ja.doukaku.org/80" |& getline) > 0) {print $0}}'
ピラミッドを作る (Nested Flatten)
Hashを使って書いてみました.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
max = 4
p = Hash.new('*')

(1..max).each do |i|
	(1...max).each do |j|
		if i <= j then
			p[i] = " #{p[i]} "
		else
			p[i] = "*#{p[i]}*"
		end
	end
end

(1..max).each do |i|
	puts p[i]
end
条件を満たす行を取り除く (Nested Flatten)
考え方は同じですが,Rubyっぽくなるように心がけてみました
1
2
3
ARGF.read.each_line do |line|
	puts line unless line.index('#') == 0
end
Hello, world!その2 (Nested Flatten)
8進数を使ったものです.
1
ruby -e 'puts "\110\145\154\154\157\54\40\167\157\162\154\144\41"'

Index

Feed

Other

Link

Pathtraq

loading...