mysql编码配置

mysql几个重要的,与编码想着的配置,默认如下:

mysql> show variables like '%char%';
Variable_name Value
character_set_client utf8
character_set_connectionutf8
character_set_databaselatin1
character_set_filesystembinary
character_set_resultsutf8
character_set_serverlatin1
character_set_systemutf8
character_sets_dir/usr/share/mysql/charsets/

修改方法如下: 修改/etc/mysql/my.cnf,并重启mysql

[mysqld]
character-set-server=utf8  
[client]
default-character-set=utf8  
[mysql]
default-character-set=utf8  

另外,mysql-server只能通过localhost去访问,可以将/etc/mysql/my.cnf中的bind-address改成需要的地址,就可以通过其它机器访问了

本文参考了这篇文章 彻底解决mysql中文乱码

kmp算法代码及next数组思考

最难理解的部分是next数组的求解方法,自己思考了两周总是想,为什么k的下一次迭代为什么会是next[k]而不是k-1。经过和牛人沟通,及看了这篇文章KMP 算法详细解析,终于想通:所有迭代过程中,最长公共前后缀的结束部分应该是含有共同的尾巴。

代码是非常简单的

  public int indexOf(String S, String P) {
    int[] nextTab = extractNext(P);
    int i = 0, j = 0, s_size = S.length(), p_size = P.length();
    while (i <= s_size - 1) {
      if (S.charAt(i) == P.charAt(j)) {
        if (j == p_size - 1) {
          return i - j;
        }
        j++;
        i++;
      } else {
        if (0 == j) {
          i++;
          continue;
        }
        j = nextTab[j];
      }
    }
    return -1;
  }

  int[] extractNext(String P) {
    final int[] nextTab = new int[P.length()];
    nextTab[0] = -1;
    int k = 0;
    for (int i = 1; i < nextTab.length; i+

算术表达式计算:Java版本

用Java语言实现的算术表达式计算器

利用两个堆栈,一个保存操作数,一个保存操作符,一边解析输入,一边计算

# Calculator.java 类

import java.util.Stack;

public class Calculator {

  public String eval(String expr) {
    return _eval(expr);
  }

  public static class Lexer {

    private Lexer(String expr) {
      this.input = expr;
      this.seq = expr.toCharArray();
      this.pos = 0;
    }

    public static Lexer create(String expr) {
      return new Lexer(expr);
    }

    public String input;
    public char[] seq;
    int pos;

    public String getWord() {
      StringBuffer ret = new StringBuffer();
      boolean end = false;
      TYPE current = TYPE.NUL;
      while (!end && pos < seq.length) {
        char c = seq[pos];
        switch (c) {
          case '+':
            end = true;
            if (current == TYPE.FLOAT) {
              break;
            }
            current = TYPE.

为Ghost博客增加留言功能

官方文档Adding Disqus to your Ghost blog 说要在post.hbs{{#post}}{{/post}}之间添加disqus代码,但是我所使用的主题没有post.hbs文件。


  • 通过在content/theme/toxni-theme/中执行find -r 'Next:' .找到博文内容所在模板文件为partials/articleView.hbs。将disqus代码添加进去,博客就有了留言功能。简直不能更方便。下面是截图:

comment

来做第一个评论的人吧:)