15072008 Ruby
最近買った数冊のうちの一冊
アイデンティテイ
>> 0.object_id
=> 1
>> 1.object_id
=> 3
>> 2.object_id
=> 5
整数のobject_idは二倍して1を足した整数?だとすると偶数部分は何なの?
15072008 Ruby
最近買った数冊のうちの一冊
アイデンティテイ
>> 0.object_id
=> 1
>> 1.object_id
=> 3
>> 2.object_id
=> 5
整数のobject_idは二倍して1を足した整数?だとすると偶数部分は何なの?
13072008 富士
今日も風がとても気持ちよかったので、朝夕はベランダにアウトドアチェアーを持ち出して、缶ビール(夕方)を片手にmacbookと戯れる。

快適。意外に集中できていい感じ。この調子で、BBQでTDDとか横文字三つを並べる駆動開発とかやれたらいいんだけど、さすがにマンションのベランダで炭をおこすのは無理か、、、
無線LAN完備のキャンプ場とかないかな。
13072008 cpp
indexが昇順になるように文字列を連結していってその長さを答える
最初はindexを増やしていきながらマッチする文字列領域を決めていくという流れでコードを書いたのだけどそれだとシステムテストが通せなかったので、あきらめた。
{"aaaaaaaaaa", "a", "ab", "a", "abbbb"}
が14でなくて16になってしまう。
結局マージしたい文字列がsuperstringに含まれるかfindして、見つかればインデックスを書き換えて次の文字をマージしていく。含まれない場合はオーバーラップしている部分を一文字ずつ減らしながら探っていく方法に変えた。
class OrderedSuperString {
public:
int getLength(vector <string> words) {
string superstring = words[0];
int ind = 0;
if(words.size() == 1) return superstring.length();
for(int i=1;i<words.size();++i){
int matched = superstring.find(words[i],ind);
if(matched != string::npos){
ind = matched; continue;
}
int overlapped;
for(overlapped=min(superstring.length()-ind,words[i].length());overlapped>0;--overlapped){
if(superstring.substr(superstring.length()-overlapped,overlapped) == words[i].substr(0,overlapped)) break;
}
ind = superstring.length()-overlapped;
superstring += words[i].substr(overlapped,words[i].length()-overlapped);
}
return superstring.length();
}
};
12072008 Curry
五反田のうどんにカレーを食べに。軽く夏日でこのタイミングでカレーを食べるのはいかがなものかと思ったが、東京に出てくるのも久々なので。

目当ては季節の夜かれー。

酸味と辛さがスカッとくる。次に東京行けるのいつかなー。
10072008 life
「ブログって情報発信でしょ」とか。そんな感じで職場の同僚が話をしたけど、あれは明らかに情報収集ツールだよなと思ふ。
自分のサイトをブックマークしたユーザーのダイアリをRSSリーダーで購読したり、自分のブログをLDRに登録したヒトが他に何を登録しているのかチェックしつつ面白そうなサイトをLDRに突っ込んだりとか、コメントのやりとり以外にもwin-winの関係を築けるのが良いのだと思うのだけど。
なんかバランスよく価値観をマッチングさせてるのが心地良いんだよなと。
で、わらしべ長者のお話って物理的な等価交換ネタだったけど、ブログ(を含めた最近のツール)ってのは、win-winで自分を成長させる情報の等価交換物語とも捉えられるよなとふと思った。
わらしべ長者の主人公は単なるお人好しで運が良かった的なストーリーになっとるけど、実は緻密に計算された人生計画だったりして。
09072008 music
葬列と宗教
countメソッドを覚えたのでメモ。
class Hangman {
public:
string guessWord(string feedback, vector <string> words) {
vector <string> candidates;
for(int i=0;i<words.size();i++) {
if(words[i].length() == feedback.length()) {
vector <char> used,fused;
int mismatched =0;
for(int j=0;j<feedback.length();j++) {
if(feedback[j] != '-' && feedback[j] != words[i][j]) {
mismatched++;
}
else if (feedback[j] != '-' && feedback[j] == words[i][j]) {
int fc = (int) count(feedback.begin(), feedback.end(), feedback[j]);
int wc = (int) count(words[i].begin(), words[i].end(), feedback[j]);
if (fc != wc) mismatched++;
}
}
if(mismatched>0) continue;
candidates.push_back(words[i]);
}
}
if (candidates.size() == 1) return candidates[0];
else return "";
}
};
int round(string num, string cutoff) {
stringstream ss,ss2;
int i;
double f,c;
ss << num;
ss >> f;
ss2 << cutoff;
ss2 >> c;
i = int(f);
if(f-i > c) i++;
return i;
}
それだけ