2017-01-01から1年間の記事一覧
マニュアルをちゃんと読むと書いてあるのだが。 PHP: mb_encode_mimeheader - Manual PHP: mb_decode_mimeheader - Manual 前者のmb_encode_mimeheader()は、以下のように書いてある。 パラメータ str エンコードする文字列。 mb_internal_encoding() と同じ…
徳丸浩の日記: 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう https://t.co/Lc20UYnwMT— HHeLiBeX (@hhelibex) 2017年12月11日 ということで、あちこちから突っ込みが来ないことを祈りつつ(謎)、手元にある各言語でテストプログラム…
各言語で入力された文字列の部分文字列を取得するプログラムを書いてみたメモ。 要件は以下の通り。 標準入力から、1行の文字列が与えられる 文字エンコーディングはUTF-8 サロゲートペアも含まれることがある 文字数は3文字以上であることが保証される 入力…
各言語で指定したディレクトリ直下のファイル一覧を取得するプログラムを書いてみたメモ。 要件は以下の通り。 コマンドライン引数には、ディレクトリ名が1つ指定される 指定されたディレクトリから直下にあるファイルのファイル名一覧を読む ファイルの個数…
唐突に、各言語での整数型の最大値と最小値をまとめてみようと思ったメモ。 環境 手元にあるものということで、環境は以下のものに限定する。なお、32ビット環境は、このために急きょ作った。 CentOS 6 (32ビット) Java (openjdk version "1.8.0_151") C (gc…
各言語でUTF-8のバイト列を読み込み、文字列置換と文字列分割をしてみたメモ。 要件は以下の通り。 標準入力から、文字列が1行だけ入力される。 文字エンコーディングはUTF-8 入力文字数は高々10文字とする 標準出力に、以下の2つを改行区切りで出力する。 …
各言語でUTF-8のバイト列を読み込み、バイト数とUnicodeでの文字数を取得してみたメモ。 要件は以下の通り。 標準入力から、文字列が1行だけ入力される。 文字エンコーディングはUTF-8 入力文字数は高々10文字とする 標準出力に、以下の3つを改行区切りで出…
各言語でファイル入出力と文字エンコーディング変換を書いてみたメモ。 やってる途中で、別々のエントリに分けた方が良かったかもと思ったりもしたが、例えばJavaなんかは内部的には「文字」はUTF-8だったりして入出力と文字エンコーディング変換が深くかか…
そういえば今まで意識しなかったな、ということで、各言語の標準エラー出力を使ってみたメモ。 環境 手元にあるものということで、環境は以下のものに限定する。 CentOS 7 Java (openjdk version "1.8.0_151") C (gcc (GCC) 4.8.5) -std=gnu11でコンパイル C…
突然ですが、以下のコードの出力結果はどうなると思いますか?ちなみに「invert」というのは、結果が負の場合に「1」それ以外の場合に「0」になるプロパティ。 diff($dt2); $diff2 = date_diff($dt1, $dt2); var_dump($diff1->invert, $diff2->invert); $dt…
以下のようなプログラムを見つけて、思わず机を叩き割ろうかと思いましたよ、えぇ‥ Reader reader = null; try { for (int i = 0; i < files.length; ++i) { reader = new BufferedReader(new InputStreamReader(new FileInputStream(files[i]))); // 以下、…
そういえばやってなかったなということで、各言語でコマンドライン引数を扱うプログラムを書いてみたメモ。 要件は以下の通り。 コマンドライン引数として、3個以上の文字列を与える 標準出力に、以下を順に出力 引数として与えられた文字列を改行区切りで出…
Javaで文字列のパターンマッチをしようと思ったら、以下の3通りに書ける。 String str = "Hello World"; if (str.matches("H.*W")) { ... } String str = "Hello World"; if (java.util.regex.Pattern.matches("H.*W", str)) { ... } String str = "Hello Wo…
手元にある各言語で、メッセージダイジェストを出力してみたメモ。 要件は以下の通り。 標準入力から、0バイト以上の任意のバイト列が入力される 標準出力に、入力に対する以下のハッシュ文字列を改行区切りで出力する MD5 SHA-1 SHA-224 SHA-256 SHA-384 SH…
手元にある各言語で、base64エンコード/デコードをしてみたメモ。 要件は以下の通り。 標準入力は以下の通り構成される 1行目はASCII文字(空白文字を含む)からなる文字列が与えられる 2行目はbase64エンコードされた文字列が与えられる 3行目以降はMIME形式…
手元にある各言語で、「1行」を読み込んだ時の文字列の違い、とりわけ改行コードの扱いについて調べてみたメモ。 環境 手元にあるものということで、環境は以下のものに限定する。 CentOS 7 Java (openjdk version "1.8.0_151") C (gcc (GCC) 4.8.5) -std=gn…
手元にある各言語で、Map構造を使うプログラムを書いてみようと思ったメモ。 Map構造と言っても、「連想配列」がその言語にあればそれを使う。 要件は以下の通り。 標準入力は、以下のデータから構成される 1行目に、空白区切りのキーワードがいくつか入力さ…
手元にある各言語で、標準入力から日時文字列を読み込んで、標準出力にUNIX TIME値を吐き出すプログラムを書いてみようと思ったメモ。 要件は以下の通り。 入力される日時文字列は1つのみ 不正入力のチェックは不要とする OS等のタイムゾーンはJST 対応するU…
手元にある各言語で、標準入力からUNIX TIME値を読み込んで、標準出力にフォーマットされた日時文字列を吐き出すプログラムを書いてみようと思ったメモ。 要件は以下の通り。 入力されるUNIX TIME値は1つのみ 不正入力のチェックは不要とする タイムゾーンは…
手元にある各言語で、標準入力からの数値列をQueueに放り込んで、入力と同順になるように標準出力に吐き出すプログラムを書いてみようと思ったメモ。 標準入力から入力される数値列の要件は以下の通り。 1行に1つの数値が書かれている 不正入力のチェックは…
手元にある各言語で、標準入力からの数値列をStackに放り込んで、入力とは逆順になるように標準出力に吐き出すプログラムを書いてみようと思ったメモ。 標準入力から入力される数値列の要件は以下の通り。 1行に1つの数値が書かれている 不正入力のチェック…
Go言語で以下のようなコードを書いて一瞬ハマったのでメモ。 package main import ( "fmt" "container/list" ) func main() { list := list.New() list.PushBack(1) list.PushBack(2) list.PushBack(3) for elem := list.Front(); elem != nil; elem = elem.…
手元にある各言語で、標準入力から数値列を読み込んで、逆順にしたうえで標準出力に吐き出すプログラムを書いてみようと思ったメモ。 標準入力から入力される数値列の要件は以下の通り。 1行に1つの数値が書かれている 不正入力のチェックは不要とする いく…
手元にある各言語で、標準入力から数値列を読み込んで、降順にソートしたうえで標準出力に吐き出すプログラムを書いてみようと思ったメモ。 プログラム言語にもよるが、昇順は簡単なのに降順となったとたんに苦労するケースがあったりする。 標準入力から入…
手元にある各言語で、標準入力から数値列を読み込んで、昇順にソートしたうえで標準出力に吐き出すプログラムを書いてみようと思ったメモ。 標準入力から入力される数値列の要件は以下の通り。 1行に1つの数値が書かれている 不正入力のチェックは不要とする…
プログラミングコンテストとかでjava.util.Scannerを使って入力の数値を取得しようとすると、どうしてもInteger.parseIntした場合より実行速度が遅くなってしまうということで、どの程度のものなのかを簡単に調べてみたメモ。 検証環境 CentOS 7のVM(Virtual…
過去にもなんか調べた気がしないでもないが、Java 9リリース記念ということで、Sun/Oracle JDK限定だが、JDKのバージョンを変えたときの「+」連結/StringBuffer/StringBuilderの速度の違いをざっと調べてみた。 平均値とか出すのが面倒だったので、測定は一…
プログラミングコンテストなどでよく見かける以下のコード断片を「おまじない」で片づけるのが嫌だったので調べてみたメモ。 ios_base::sync_with_stdio(false); cin.tie(NULL); 答えは以下のサイトで解説されているのだが‥ c++ - Significance of ios_base:…
唐突に、手元にある各言語で標準入力から1行ずつ読み込んで、行の先頭の数値として解析できる部分を数値に変換して標準出力に吐き出すプログラムを書いてみようと思ったメモ。 例えば、「+123i456」という行があったら、「+123」までが数値として解析できる(…
唐突に、手元にある各言語で標準入力から1バイトずつ読み込んで、大文字小文字変換をしたうえで標準出力に吐き出すプログラムを書いてみようと思ったメモ。 大文字小文字判定等を行う関数をまじめに使った言語もあれば、正規表現に頼った言語もあったり、果…