# 一个简单的姓名拼音匹配## 姓名一般是由两三个汉字组成,选其顺序且连续的拼音缩略的组合就算匹配成功。#require 'chinese_pinyin'@name = "成吉思汗"pinyins = Pinyin.t(@name).split

# 把姓名生成对应的拼音数组array = []pinyins.each_with_index do |han, index|  array[index] = []  han.size.times {|num| array[index] << han[0..(num - 1)] }end

as = []array.size.times do |x|  sub_array = []

  # 第一趟生成姓名拼音缩略的所有满足顺序且连续的组合  array.each_with_index do |ele, i|    ni = i + x    sub_array << array[i..ni] if array[ni]  end

  # 第二趟把每个组合各自归并  sub_array.each do |arr|    while arr.size > 1      sub_as = []      arr[0].each {|a1| arr[1].each {|a2| sub_as << ( a1 + a2 ) } }      arr[0..1] = [sub_as]    end    as << arr    puts arr.join(' ')  end

end

as.flatten.join(',')

# Ruby标准库里的abbr.rb是排除两个英文单词的共同缩略,见http://ruby-doc.org/stdlib/libdoc/abbrev/rdoc/classes/Abbrev.html

一个简单的姓名拼音匹配相关推荐

  1. 一个简单的汉字搜索匹配示例(支持拼音、首字母简写)

    在社交应用中,很多场景下需要用到搜索,以微信的搜索通讯录为例.好友自己有昵称,我们可能给他/她备注一个昵称,在输入:拼间.首字母.原文时都应该能匹配到(匹配优先是备注然后才是原来的昵称).这里以'芈月 ...

  2. android 通讯录搜索算法,一个简单的通讯录联系人拼音匹配算法

    这是很久以前遇到一个面试题,通讯录联系人拼音匹配算法,题目描述如下: 在通讯录里搜索联系人里,用户习惯使用拼音缩写,我们定义如下的搜索匹配规则: 以搜索王海宝(WangHaiBao)为例,如下输入均能 ...

  3. 一个简单的拼音输入法,实现常用汉字的输入

    /* 这是一个简单的拼音输入法,只有常用的汉字,输入拼音后, 再输入数字,选择所需要的拼音 */ #include <string.h> #include <stdio.h> ...

  4. 构建一个简单的卷积神经网络,使用DRL框架tianshou匹配DQN算法

    在之前的文章中,我们做了如下工作: 如何设计一个类flappy-bird小游戏:[python实战]使用pygame写一个flappy-bird类小游戏 | 设计思路+项目结构+代码详解|新手向 DF ...

  5. 姓名拼音首字母缩写_公司首字母缩写

    姓名拼音首字母缩写 首字母缩略词可以很容易地提醒您扩展主题的引用,并且显然可以以某种方式对其进行概括,这尤其有用,尤其是当您可以将它们用作新词来快速表达关系并直截了当地时(例如提及SLA,KPI,SO ...

  6. 两人的姓名拼音相加是否为偶数(26进制数奇偶判断)

    /*姓名拼音都只要小写字符,且中间没有空格,a代表0, b代表1,依次类推,z代表25,...也就是说,26 进制 呐--,用小写英文表示的26进制加法, 想想都头疼呢!幸好你发现了,偶数嘛,很容易检 ...

  7. 用php建设一个简单的网站,PHP_PHP新手上路(六),建设一个简单交互的网站(二) 5 - phpStudy...

    PHP新手上路(六) 建设一个简单交互的网站(二) 5.5 计数器 让我们在首页上加上一个计数器.这个例子已经被讲过多次了,但是还是有利于演示怎样读写文件以及创建自己的函数.counter.inc包含 ...

  8. [Vue]如何实现一个简单的表格数据筛选查找 (根据ElementUI表格展示)(数组筛选)

    [Vue]如何实现一个简单的表格数据筛选查找 (根据ElementUI表格展示)(数组筛选) 能够解决的问题 在一个完整的数据数据渲染的 elementui 表格组件中,筛选输出数据 目录 布局代码 ...

  9. 快速搭建一个简单的SSM框架

    1.准备工作 mysql数据库 idea工具 说明:本次是搭建一个SSM框架,首先要确保电脑配置好1.8以上的JDK(因为1.8以下的jdk某些东西不支持),mysql数据库直接使用不方便可以安装一个 ...

最新文章

  1. Sed教程(一):简介、环境设置、工作流程
  2. [置顶] ProDinner体验
  3. Coding Interview Guide -- 数组的partition调整
  4. python求阶乘和
  5. Windows Phone 内容滑动切换实现
  6. Linux pause函数 详解
  7. 【文末送书】调参太费力?自动化机器学习来帮你!
  8. EditorGridPanel 中使用checkbox列,并包含afterEdit事件
  9. ssma迁移助手_如何使用SQL Server迁移助手(SSMA)和SSIS将MySQL表迁移到SQL Server
  10. shell编程入门步步高(二、基础概念)
  11. java基础知识查漏 三
  12. 泰山JDK8率先支持多种权重(笔画粗细)的字体绘制
  13. 编译原理——正规表达式与有限自动机(笔记)
  14. php实现两张图片合成一张,如何把两张图片拼成一张
  15. 一、ShenYu快速开始
  16. mysql事务prepare_mysql之 事务prepare 与 commit 阶段分析
  17. 【AGC031E】Snuke the Phantom Thief(费用流)
  18. 文件上传进度条 c 语言,cgi 上传文件(c 语言) 进度条显示
  19. java ar教程_JavaFX教程整理
  20. 用while语句显示1~10的平方。

热门文章

  1. Android 架构设计与挑选
  2. Beta阶段站立会议-02
  3. vscode插件不兼容无法安装
  4. u盘有图标计算机显示没有,电脑没插U盘却显示U盘图标的解决方法
  5. Windows Phone网页体验版
  6. deepin win10字体_购机指南 | Deepin 初次体验,国产OS还有很长路要走
  7. AGV调度系统实现(一)
  8. 2022-2028年全球与中国高级计算机断层扫描仪行业发展趋势及投资战略分析
  9. Docker 2.3:Docker 镜像管理
  10. debian /etc/fstab      开机时挂载的文件系统; /etc/mtab      当前挂载的文件系统