单词

P1101 单词方阵

怎甘沉沦 提交于 2019-12-31 02:38:49
https://www.luogu.org/problem/show?pid=1101#sub #include<iostream> #include<cstring> #include<cstdio> #include<string> #include<algorithm> #include<queue> #include<vector> using namespace std; int dx[]={0,1,1,1,0,0,-1,-1,-1},dy[]={0,1,0,-1,-1,1,1,-1,0}; int n;char a[200][200],table[]={'0','y','i','z','h','o','n','g'}; bool color[200][200]; bool judge(int x,int y) { if(x<=n&&x>=1&&y>=1&&y<=n) return 1; return 0; } void dfs(int x,int y,int to,int k) { if(k==7) { color[x][y]=true; for(int i=1;i<7;i++) { color[x-i*dx[to]][y-i*dy[to]]=true; } } int xs=x+dx[to],ys=y+dy[to]; if(judge(xs,ys)) if(a[xs]

luogu 1101单词方阵

核能气质少年 提交于 2019-12-31 02:38:30
题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red]可以[/color]交叉,因此有可能共用字母。输出时,将不是单词的字母用“*”代替,以突出显示单词。例如: 输入: 8 输出: qyizhong *yizhong gydthkjy gy****** nwidghji n*i***** orbzsfgz o**z**** hhgrhwth h***h*** zzzzzozo z****o** iwdfrgng i*****n* yyyygggg y******g 输入输出格式 输入格式: 第一行输入一个数n。(7<=n<=100)。 第二行开始输入nXn的字母矩阵。 输出格式: 突出显示单词的nXn矩阵。 输入输出样例 输入样例#1: 7 aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa 输出样例#1: ******* ******* ******* ******* ******* ******* ******* //记录每个 y 的位置,将每个 y 进行一次深搜,8 个方向 #include<iostream> #include<cstdio> #include

单词方阵(dfs)

不问归期 提交于 2019-12-31 02:38:14
给一nXn的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red]可以[/color]交叉,因此有可能共用字母。输出时,将不是单词的字母用“*”代替,以突出显示单词。例如: 输入: 8 输出: qyizhong *yizhong gydthkjy gy****** nwidghji n*i***** orbzsfgz o**z**** hhgrhwth h***h*** zzzzzozo z****o** iwdfrgng i*****n* yyyygggg y******g 输入输出格式 输入格式: 第一行输入一个数n。(7<=n<=100)。 第二行开始输入nXn的字母矩阵。 输出格式: 突出显示单词的nXn矩阵。 输入输出样例 输入样例#1: 7 aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa 输出样例#1: ####### ####### ####### ####### ####### ####### ####### 典型的深搜,就是过程有点麻烦,先规定一个字符串yizhong,深度每增加1,对应字符串位置加一。 AC代码; #include <bits/stdc++.h> using

单词方阵

删除回忆录丶 提交于 2019-12-31 02:37:59
单词方阵 搜索. 按方向 \(dfs\) 即可 每次搜索前要清除标记 #include <cstdio> #include <cctype> #include <cstring> const int MAXN=100+1; const int dx[8]={-1,1,0,0,-1,1,-1,1}; const int dy[8]={0,0,-1,1,-1,-1,1,1}; const char s[]="yizhong"; int mtr[MAXN][MAXN]; bool chos[MAXN][MAXN]; inline char read() { char c=getchar(); while(!isalpha(c))c=getchar(); return c; } void dfs(int x,int y,int k,int i,bool& is,int n){ if(mtr[x][y] != s[i])return; if(i==6){ is=true; chos[x][y]=true; return; } int a=x+dx[k],b=y+dy[k]; if(a>=0 && a<n && b>=0 && b<n)dfs(a,b,k,i+1,is,n); if(is)chos[x][y]=true; } int main() { memset(mtr,0,sizeof

P1101 单词方阵 (单词方阵)

那年仲夏 提交于 2019-12-31 02:37:51
思路:就是白白的模拟 #include<iostream> using namespace std; int f[110][110]; char cc[110][110]; char kk[] = "yizhong"; int n; void ff(int x, int y, int a, int b){ bool flag = 1; int xx, yy; for (int i = 0; i < 7; ++i){ xx = x + a*i; yy = y + b*i; if (!(xx >= 0 && xx < n&&yy >= 0 && yy < n) || (cc[xx][yy] != kk[i])){ flag = 0; break; } } if (flag)for (int i = 0; i < 7; ++i){ xx = x + a*i; yy = y + b*i; f[xx][yy] = 1; } } int main(){ cin >> n; for (int i = 0; i < n; ++i) cin >> cc[i]; for (int i = 0; i < n;++i) for (int j = 0; j < n;++j) if (cc[i][j] == 'y'){ ff(i, j, 0, 1); ff(i, j, 1, 0); ff(i, j, 0,

1407:笨小猴

自作多情 提交于 2019-12-30 00:53:33
【题目描述】 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。 【输入】 只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。 【输出】 共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”; 第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。 【输入样例】 error 【输出样例】 Lucky Word 2 【提示】 样例输入: 样例 #2: olympic 样例输出: 样例 #2: No Answer 0 #include <iostream> int i,j; bool primer (int ,int); using namespace std; #include <string> #define A 30 int main() { string str; int word[26]={0}; int max=0,min=999

java 英文单词纠正校验框架(Word Checker)

一世执手 提交于 2019-12-29 02:14:55
Word Checker 本项目用于单词拼写检查。 项目简介 word checker 用于单词拼写检查。 Github 地址 特性说明 支持 i18n 错误提示支持 i18N 支持英文的单词纠错 可以迅速判断当前单词是否拼写错误 可以返回最佳匹配结果 可以返回纠正匹配列表,支持指定返回列表的大小 后续将会添加的新功能 英文单词支持自行定义 中文单词的拼写是否正确功能添加 快速开始 JDK 版本 JDK1.7 及其以后 入门例子 maven 引入 本项目已经上传到 maven 仓库,直接引入即可 <dependency> <groupId>com.github.houbb</groupId> <artifactId>word-checker</artifactId> <version>0.0.1</version> </dependency> 测试案例 Main.java public static void main(String[] args) { final String result = EnWordChecker.getInstance().correct("speling"); System.out.println(result); } 结果为 spelling 英文拼写纠错功能介绍 备注 所有方法为 EnWordChecker 类下。 功能 方法 参数 返回值 备注

uva 10391 Compound Words

左心房为你撑大大i 提交于 2019-12-27 17:52:00
哈希 题意简短:单case,输入一列单词即一个字典,已经按字典序排好输入,上限为120000,然后要你找一些单词,这种单词可以分为两部分,两部分都是字典里面的单词,按字典序输出这种单词 很裸的哈希,对于每个单词,将其分成两部分,一共有len中分法,然后去查找是否都在字典中,如果都在字典中就输出(因为输入已经按字典序排好,扫描时直接扫下来就可以了,找到合适的就输出) 问题的关键就转变为,给你一个单词,怎么判断这个单词是不是在字典中,用哈希就可以快速判断到。输入时随便将每个单词都用哈希函数映射掉,每得到要查询的单词也直接映射过去查找 处理冲突的方法是链表(静态链表数组模拟) 用了BKDHash函数在处理字符串的映射 BKDHash,40ms #include <cstdio> #include <cstring> #define N 120000 #define LEN 110 #define P 0x7fffffff int n,tot; char word[N+10][LEN]; int head[N+10]; struct list { int n; int next; }e[N+10]; void add(unsigned int index ,int m) { e[tot].n = m; e[tot].next = head[index]; head[index] = tot

140_单词拆分Ⅱ

谁说胖子不能爱 提交于 2019-12-27 07:23:29
""" 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。 说明: 分隔时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1: 输入: s = "catsanddog" wordDict = ["cat", "cats", "and", "sand", "dog"] 输出: [ "cats and dog", "cat sand dog" ] 示例 2: 输入: s = "pineapplepenapple" wordDict = ["apple", "pen", "applepen", "pine", "pineapple"] 输出: [ "pine apple pen apple", "pineapple pen apple", "pine applepen apple" ] 解释: 注意你可以重复使用字典中的单词。 示例 3: 输入: s = "catsandog" wordDict = ["cats", "dog", "sand", "and", "cat"] 输出: [] """ from collections import deque def wordBreak3 ( s , wordDict ) : size = len ( s )

单词统计

六月ゝ 毕业季﹏ 提交于 2019-12-27 01:01:14
问题: 英语的26 个字母的频率在一本小说中是如何分布的?某类型文章中常出现的单词是什么?某作家最常用的词汇是什么?哈利波特》 中最常用的短语是什么,等等。我们就写一些程序来解决这个问题,满足一下我们的好奇心。第0步:输出某个英文文本文件中 26 字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位。字母频率 = 这个字母出现的次数 / (所有A-Z,a-z字母出现的总数)如果两个字母出现的频率一样,那么就按照字典序排列。 如果 S 和 T 出现频率都是 10.21%, 那么, S 要排在T 的前面。第1步:输出单个文件中的前 N 个最常出现的英语单词。作用:一个用于统计文本文件中的英语单词出现频率。单词:以英文字母开头,由英文字母和字母数字符号组成的字符串视为一个单词。单词以分隔符分割且不区分大小写。在输出时,所有单词都用小写字符表示。英文字母:A-Z,a-z字母数字符号:A-Z,a-z,0-9第1步:输出单个文件中的前 N 个最常出现的英语单词。分割符:空格,非字母数字符号 例:good123是一个单词,123good不是一个单词。good,Good和GOOD是同一个单词。 package com; import java.io.File; import java.io.RandomAccessFile; import java.util.HashMap;