Skip to content

Instantly share code, notes, and snippets.

View takei-yuya's full-sized avatar

TAKEI Yuya takei-yuya

View GitHub Profile
@takei-yuya
takei-yuya / keybase.md
Created September 2, 2024 10:56
keybase

Keybase proof

I hereby claim:

  • I am takei-yuya on github.
  • I am takei (https://keybase.io/takei) on keybase.
  • I have a public key ASCBUJ1WOTFIUYA8VZc3ddcdMszYZ4AJxTkqDH6vnZIQEAo

To claim this, I am signing this object:

@takei-yuya
takei-yuya / mytmp.cpp
Last active May 11, 2024 16:50
User namespace と Mount namespaceを作って自分用の /tmp を作るコマンド
#include <errno.h> // errno
#include <getopt.h> // getopt_long
#include <libgen.h> // dirname, basename:w
#include <stdlib.h> // getenv
#include <string.h> // strerror
#include <sys/eventfd.h> // eventfd
#include <sys/mount.h> // mount
#include <sys/stat.h> // mkdir, stat
#include <sys/types.h> // mode_t
#include <sys/wait.h> // waitpid
@takei-yuya
takei-yuya / bm.cpp
Last active March 26, 2020 07:06
BM法(その1)
class BM {
public:
explicit BM(const std::string& query) : query_(query) {
for (size_t i = 0; i < query_.size() - 1; ++i) { // 最後の文字は最初に比較されるのでジャンプ計算から省く
char_pos_[query_[i]] = i;
}
}
ssize_t Search(const std::string& text, size_t i = 0) const {
while (i + query_.size() <= text.size()) {
@takei-yuya
takei-yuya / kmp.cpp
Last active April 15, 2020 01:17
KMP法
class KMP {
public:
explicit KMP(const std::string& query) : query_(query) {
next_.resize(query_.size());
if (query_.empty()) return;
next_[0] = -1;
next_[1] = 0;
size_t i = 2, j = 0;
while (i < query_.size()) {
@takei-yuya
takei-yuya / naive.cpp
Created January 14, 2020 05:53
ナイーブな文字列検索
// https://tech.retrieva.jp/entry/yyyy/dd/mm/HHMMDD
ssize_t NaiveSearch(const std::string& query, const std::string& text) {
for (size_t t = 0; t + query.size() <= text.size(); ++t) {
size_t q;
for (q = 0; q < query.size(); ++q) {
if (text[t + q] != query[q]) break;
}
if (q == query.size()) return t;
}
#!/bin/bash
set -e
scriptdir="$(cd "$(dirname "$0")"; pwd)"
script="${scriptdir%/}/$(basename "$0")"
readonly IMAGE_DIR="${HOME}/images/"
# escape docker tag for filename
#!/bin/bash
# vim: background=dark ts=2 sts=2 sw=2 et
set -e
scriptdir="$(cd "$(dirname "$0")"; pwd)"
script="${scriptdir%/}/$(basename "$0")"
readonly IMAGE_DIR="${HOME}/images/"
readonly CONTAINER_DIR="${HOME}/container/"
@takei-yuya
takei-yuya / code_block.md
Last active January 31, 2017 08:28
コードブロックの挙動。

A: indent code block

code1
code2
code3

B: fenced code block

code1
@takei-yuya
takei-yuya / A.sh
Created June 11, 2016 08:52
PFI 0610 プロコンビンゴ A問題
#!/usr/bin/env bash
pats="preferred
preferre.
preferr.d
prefer.ed
prefe.red
pref.rred
pre.erred
pr.ferred
@takei-yuya
takei-yuya / encoding.vim
Created March 24, 2014 02:35
vimの文字コード判別
set encoding=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,iso-2022-jp,utf-8,euc-jp,sjis,cp932
set termencoding=utf-8
if has('autocmd')
autocmd vimrc BufReadPost * call AU_ReCheck_FENC()
function! AU_ReCheck_FENC()
if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0
let &fileencoding=&encoding
endif