poj1035

POJ1035拼写检查 1035:拼写检查 POJ题目地址:http://www.bailian.openjudge.cn/practice/ 最近女友在学Java,实在没题目出给她了,想起POJ,自己以前用C++做过一些,但是好久不用C了,都生疏了,这题今天花了点时间写出来,感觉需要记录一些。话不多说,直接上代码,关键部分我写上注释 package com.cl.poj; import java.uti 阅读详情

题目意思很简单,给定几个字符串,若在词典中有相匹配,输出correct

如果与词典中的词差距一个字符,可以通过添加,删除,修改变为正确,那么输出

没有就不输出

解法:水题,暴力就可以,注意易错部分的匹配

代码可能比较难理解

#include<stdio.h>
#include<string.h>
char s[10010][20];
int n,m,len[10010];
bool right(char c[30]){
	for(int i=0;i<n;++i) if(!strcmp(c,s[i])) return 1;
	return 0;
}
inline int abs(int a){   
    return (a^(a>>31))-(a>>31);
}  
bool ok(char* a,char* b){
	int l1=strlen(a);
	int l2=strlen(b);
	if(l1>l2){ 
		l1+=l2;l2=l1-l2;l1-=l2;
		char* c=a;a=b;b=c;
	}
	if(l1==l2) {
		bool cnt=0;
		for(int i=0;i<l1;++i)	
			if(cnt&&a[i]!=b[i])return 0;
			else cnt|=(a[i]!=b[i]);
		return 1;
	}
	else {
		bool cnt=0;
		for(int i=0;i<l2;++i)
			if(cnt&&a[i-cnt]!=b[i])return 0;
			else cnt|=(a[i-cnt]!=b[i]);
		return 1;
	}
}
			
int main(){
	scan:
		scanf("%s",s[n]);
		len[n]=strlen(s[n]);
		if(*s[n++]=='#') n--;
		else goto scan;
	char c[30]; int l;
	work:
		scanf("%s",c);
		if(*c=='#') goto end;
		if(right(c)) {
			printf("%s is correct\n",c);
			goto work;
		}
		l=strlen(c);
		printf("%s:",c);
		for(int i=0;i<n;++i)
			if(abs(len[i]-l)<2) 
				if(ok(s[i],c)) printf(" %s",s[i]);
		puts("");
		goto work;
	end: return 0;
}


POJ 1035 解题报告 这道题做起来挺有意思的。 一开始的做法是求编辑距离(Levenshtein_distance, https://en.wikipedia.org/wiki/Levenshtein_distance)。因为这道题开着就像是编辑距离。对长度在[len - 1, len + 1]范围内的单词都求编辑距离,然后看diff是不是在1以内。结果超时了。编辑距离的算法是动态规划,每次需要O(n^2)的时间复杂 阅读详情

相关推荐

POJ1035-Spell checker 测试数据

北大ACP-POJ 1035 - Spell checker 原比赛题目测试数据(问题G)

POJ总结(1035)-Java

判断字符串是否可以通过增删改一个字符变成另一个目标字符串今天写了POJ1035-Spell checker,原题请见 Spell-checker 题目其实比较简单,但是好久没有写代码了,大脑愚钝,不知道怎么判断一个字符串是否可以通过另一个字符串增删一个字符得到。学习了之后总结如下

leeham的博客 688

多种解题技巧POJ1035_Spelling Checker

总结了多位大神的解题技巧并分享. 运用了模拟法,多种解题思路,都通过了ACM网址的提交Accept。

POJ1035-拼写检查

1.删除,变换,或补,上一个字母。使得输入==字典中已经有的单词。则输出该单词。 2.要能够忽略一个错误,继续匹配. #include #include int Find(int a); int n; int lend[10001]; char Dt[10001][20],In[20],len; int Find(int a) { int i,t; t=lend[a]-len

Ignorance 3138

POJ1035-Spell checker

北大POJ1035-Spell checker 解题报告+AC代码

Android Framework之Pkms详解

system 用户并没有访问应用程序目录的权限,但是 Installd 服务是以 root 用户启动的,可以访问 /data/data/ 下的目录,Installd 需要完成一些创建应用数据的任务。Installer 服务是 Android 提供的用于安装的服务,Installer 持有 Installd 守护进程对应的 Binder 服务的代理对象,本质上是通过 Binder 通信调用底层的 Installd 服务真正完成 APK 文件格式的优化和转换、建立相关的数据目录、删除文件、安装应用等工作。

门徒07的博客 1840

poj 1035 Spell checker

http://poj.org/problem?id=1035 题意:给出一些字典单词,然后给出查询的单词temp,若字典单词中有temp就直接输出,如果没有就输出1:一个字母拼写错误;2:多添加了 一个字母;3:少了一个字母; 思路:用vector存的string序列,然后用string的一些特性来判断的; 代码: View Code #include <cstdio>...

weixin_33744854的博客 131

Arm CCA架构:硬件级机密计算与安全隔离技术解析

机密计算(Confidential Computing)通过硬件级隔离技术构建可信执行环境(TEE),是当前云安全和数据隐私保护的核心方案。Armv9-A引入的CCA架构采用物理地址空间隔离和Granule保护表(GPT)机制,实现4KB颗粒度的内存访问控制。该技术通过标准化的RMI/RSI接口规范,为虚拟化环境和安全敏感应用提供硬件级保护,特别适用于金融交易、医疗数据处理等需要严格隔离的场景。相比传统TEE方案,Arm CCA在隔离等级和动态权限管理方面具有显著优势,其Realm World设计为机密计算

weixin_30905133的博客 565

poj-1035-Spell checker

题目大意:检查拼写是否有错误。给你一个字典,然后给你要查询的单词,判断一个单词是否正确有以下规则:1.字典里面有这个单词2,删除一个字母,3增加一个字母4,替换任意一个字母。 算法:其实没什么算法,就是扫描一遍字典,比较目标字符串和字典字符串的长度,分三种情况:等长,少一个,多一个字母。代码:#include#includechar str[10010][20],s[20];i

zhang20072844的专栏 790

Sentinel2 哨兵2数据下载方法(USGS)-史上最全讲解

本文讲述了从USGS官网下载Sentinel2的方法。主要包括USGS官网的注册和下载流程,以及选定研究区中所出现的问题、解决办法。

xiatiandexia123的博客 6万+

用大白话讲解Carplay(原创)

用大白话讲解Carplay: Carplay是美国苹果公司开发的一套服务,用户通过这套服务可以将iPhone与车载系统连接,然后在车载大屏上操作使用iPhone手机。个人理解,Carplay不能叫车载系统,不是操作系统,只能算一种服务。让你在车上的大屏上使用iPhone,这样用起来更方便,不需要在手机小屏幕上操作。基于这一点,有些人也说Carplay就是个投屏的功能,将手机屏幕投屏到了车机大屏上。可以简单这么理解,但是并不只是投屏这么简单,如果只是投屏的话,车子只是起到了一个显示器的功能,其实不止,手机和

cici2013的专栏 2万+

POJ-1035-Spell checker

对与这道题感觉挺麻烦的,一不注意就容易WA,不过这次竟然1A了,很诧异。 这道题目主要就是字符串的处理,我从中还巩固了函数的调用,发现自己的函数调用越来越熟练了。 做法就是一个个字符串处理函数的调用,细心点,还是很简单的。 #include #include int nn; struct list {     char str[51]; }s[10000];//建立一个结构体存储

青竹梦 654

开源libmodbus编译为32位和64位动态库

libmodbus 是支持Linux,Mac OS X,window 的一个开源库,支持modbus TCP和RTU 两种模式。

lemontree1945的博客 1922

POJ1035 Spell checker

POJ1035http://poj.org/problem?id=1035 前: (噗...) 题目大意: 先给定一个字典,然后给出一些询问,都是单个单词,查询在字典中的 1.一模一样的单词 , 输出"correct"; 2.差距在一个字母之内,且可删除的如mre= me; 3.差距在一个字母之内,且可增添的如mre = more; 思路:不用特定判断增添/删除操...

Sensente的博客 255

Dify 系列教程 | 第 6 篇:工作流入门 -- 用可视化方式编排 AI 逻辑

Dify 工作流是一个基于有向无环图(DAG)的可视化 AI 逻辑编排系统。你可以把多个处理步骤(节点)用连线串联起来,数据从起点流向终点,每经过一个节点就被处理一次。用一个类比来理解:如果单次 Prompt 调用是"一道菜",那工作流就是"一道完整的生产线" – 原材料(输入)进入流水线,经过清洗(预处理)、切配(数据转换)、烹饪(AI 推理)、装盘(格式化输出)等工序,最终产出成品。创建一个工作流类型的应用(或高级聊天类型),就会进入工作流编辑器。编辑器基于ReactFlow构建(

weixin_43674738的博客 118

一文看懂 SAP Integration Suite:从架构治理、接口编排到事件驱动的集成全景

SAP Integration Suite是企业数字化转型中的关键集成平台,通过统一的方法论和工具链解决系统互联、数据对齐和流程协同等复杂问题。其核心能力包括:1)集成评估(Integration Assessment)提供战略规划框架;2)迁移评估(Migration Assessment)支持从传统平台向云的平滑过渡;3)云集成(Cloud Integration)实现日常业务流程编排;4)集成顾问(Integration Advisor)简化B2B标准映射;5)贸易伙伴管理(TPM)优化外部协作流程;

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 501

Poj 1035

<br /><br />这道题搞得还真不容易,一个=跟==,搞了自己近两个钟头。。。<br />用的是暴搜解决<br /> <br /> <br />/*Poj 1035, by Dream 2011/4/28*/<br />#include <iostream><br />using namespace std;<br /> <br />char dic[10010][20];<br />unsigned int totalNo = 0;<br />void DealWord(const char *wo

werflychen的专栏 753

华为OD机试双机位C卷-部门人力分配 (Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【部门人力分配】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 部门人力分配。

qq_45776114的博客 1872

poj 1035

http://poj.org/problem?id=1035 poj的一道字符串的水题,不难,但就是细节问题我也wa了几次 题意就是给你一个字典,再给你一些字符,首先如果字典中有这个字符串,则直接输出,如果没有的话,那就找字符串加一个字符或少一个字符或者换一个字符是否可以在字典中找到相应的字符串 解题思路:我是用string类型的,比较方便看两个字符串是否相等,用cha...

A1823085974的博客 199

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

POJ 1035(字符串模拟)

题目链接:http://poj.org/problem?id=1035 题意:给出一个字典,然后给出一些单词,问能否通过一下变换在字典中找到该单词: ①替换一个字符 ②删除一个字符 ③插入一个字符 若该单词已在字典中,则不需要变化。 若无法通过变换找到该单词,则不需要输出。 思路: 模拟吧,数据不是很大,但是一定要想清楚再去写代码,模拟题是硬伤。 #include #includ

To be excellent! 621

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

POJ 1035 Spell checker

POJ1035删除、替换、增加一个字母,使得输入单词能与字典中的单词相同,则输出该字典单词。#include <iostream> #include <string.h> #include <stdio.h> using namespace std; char dic[10001][16]; char ch[16]; int m; void read() { while (cin >> di

just_h的博客 366

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

POJ 1035 拼写检查

POJ 1035 拼写检查总时间限制: 2000ms 内存限制: 65536kB描述现在有一些英语单词需要做拼写检查,你的工具是一本词典。需要检查的单词,有的是词典中的单词,有的与词典中的单词相似,你的任务是发现这两种情况。单词A与单词B相似的情况有三种:1、删除单词A的一个字母后得到单词B;2、用任意一个字母替换单词A的一个字母后得到单词B;3、在单词A的任意位置增加一个字母后得到单词B。你的任...

qq_35215641的博客 1763

poj1035 Spell Checker

题目: 1:拼写检查 查看 提交 统计 提问 总时间限制: 2000ms 内存限制: 65536kB 描述 现在有一些英语单词需要做拼写检查,你的工具是一本词典。需要检查的单词,有的是词典中的单词,有的与词典中的单词相似,你的任务是发现这两种情况。单词A与单词B相似的情况有三种: 1、删除单词A的一个字母后得到单词B; 2、用任意一个字母替换单词A的一个字母后得到单词B; 3、在单

null 1325

POJ 1035-Spell checker(字符串)

题目地址:POJ 1035 题意:输入一部字典,输入若干单词。 若某个单词能在字典中找到,则输出corret;若某个单词能通过 变换 或 删除 或 添加一个字符后,在字典中找得到,则输出这些单词,输出顺序根据 输入的那部字典的字典序;若某个单词无论操作与否都无法在字典中找得到,则输出空。 思路:关于完全匹配的就直接输出就好,解题关键在不完全匹配的情况:比较时我们先算两个单词长度差之差,有三种情

Rocky0429 2046

POJ 1035 代码+详细注释

Spell checker Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19319 Accepted: 7060 Description You, as a member of a development team for a new spell checking program, are to write a

Grant Yuan的专栏 1158
上一篇: 几种二叉可并堆(详细)
下一篇: poj1936
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值