code1
code2
code3
code1
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()) { |
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()) { |
// 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/" |
#!/usr/bin/env bash | |
pats="preferred | |
preferre. | |
preferr.d | |
prefer.ed | |
prefe.red | |
pref.rred | |
pre.erred | |
pr.ferred |
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 |