poj 1035

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

import java.util.ArrayList;
import java.util.Scanner;

public class Test1035 {
	static boolean n = true;
	static boolean b1 = true;

	static ArrayList<String> array1 = new ArrayList<String>();
	static ArrayList<String> array2 = new ArrayList<String>();

	public static void main(String[] args) throws Exception {
		Scanner scan = new Scanner(System.in);
		while (scan.hasNext()) {
			String str = scan.nextLine();
			if (str.equals("#")) {
				break;
			} else {
				array1.add(str);
			}
		}
		while (scan.hasNext()) {
			String str = scan.nextLine();
			if (str.equals("#")) {
				break;
			} else {
				array2.add(str);
			}
		}

		for (int i = 0; i < array2.size(); i++) {
			String str1 = array2.get(i);
			boolean b = true;
			for (int j = 0; j < array1.size(); j++) {
				String str2 = array1.get(j);
				if (str2.equals(str1)) {
					System.out.println(str1 + " is correct");
					b = false;
					n = false;
					break;
				}
			}

			if (b) {
				for (int j = 0; j < array1.size(); j++) {
					String str2 = array1.get(j);
					if (str2.length() == str1.length()) {
						chang(str1, str2);
					}

					if (str1.length() == str2.length() - 1) {
						add(str1, str2, 0);
					}

					if (str1.length() == str2.length() + 1) {
						add(str2, str1, 1);
					}
				}
				if (!n)
					System.out.println();
			}
			if (n) {
				System.out.println(str1 + ":");
			}
			n = true;
			b1 = true;
		}

	}

	public static void chang(String str1, String str2) {
		int count = 0;
		for (int i = 0; i < str1.length(); i++) {
			if (str1.charAt(i) != str2.charAt(i)) {
				count++;
			}
		}
		if (count == 1) {
			n = false;
			if (b1) {
				b1 = false;
				System.out.print(str1 + ": " + str2 + " ");
			} else {
				System.out.print(str2 + " ");
			}
		}
	}

	public static void add(String str1, String str2, int tag) {
		int count = 0;
		for (int i = 0; i < str1.length(); i++) {
			String str = str1.substring(i, i + 1);
			if (!str2.contains(str)) {
				count++;
			}
		}
		if (count == 0 && tag == 0) {
			n = false;
			if (b1) {
				b1 = false;
				System.out.print(str1 + ": " + str2 + " ");
			} else {
				System.out.print(str2 + " ");
			}
		} else if (count == 0 && tag == 1) {
			n = false;
			if (b1) {
				b1 = false;
				System.out.print(str2 + ": " + str1 + " ");
			} else {
				System.out.print(str1 + " ");
			}

		}

	}

}


大致题意:

输入一部字典,输入若干单词

1、  若某个单词能在字典中找到,则输出corret

2、  若某个单词能通过 变换 或 删除 或 添加一个字符后,在字典中找得到,则输出这些单词,输出顺序根据  输入的那部字典的字典序

3、  若某个单词无论操作与否都无法在字典中找得到,则输出空

 

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

相关推荐

Dofbot机械臂从零部署笔记(1)——ROS之创建URDF模型、配置Moveit和MotionPlanning

Dofbot机械臂从零部署笔记(1)——ROS之创建URDF模型、配置Moveit和MotionPlanning

takedachia的博客 8700

POJ1035 Spell checker

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

Sensente的博客 255

FPGA实战:手把手教你用Verilog实现Modbus CRC16校验(附完整代码)

本文详细介绍了在FPGA中实现Modbus RTU协议CRC16校验模块的完整实战方案。针对硬件设计中的时序、资源与性能挑战,文章从算法原理出发,提供了清晰的Verilog模块接口、状态机设计、查表ROM实现及优化策略,并附带了完整的可综合代码与测试平台,帮助工程师高效构建稳定可靠的工业通信系统。

weixin_29164185的博客 434

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

从UART到RS485:手把手教你用SIT3485E收发器搞定工业级通信(含原理图与PCB布局要点)

本文详细解析了从UART到RS485的工业级通信转换,重点介绍了SIT3485E收发器的原理图设计、PCB布局要点及抗干扰技巧。通过差分信号传输和优化电路设计,实现长距离、多设备稳定通信,适用于工业自动化等复杂环境。

weixin_29169505的博客 351

ICC2: pin shape不在track上引起的drc如何解决?

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 436

POJ 1035(字符串模拟)

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

To be excellent! 621

RK3568实现蓝牙音箱功能

A2DP旨在通过蓝牙连接传输高质量的立体声音频流。它使用的基本压缩算法是SBC(Sub-Band Coding)来减小音频数据的大小,同时保持高音质,SBC压缩虽然效率较低,但是是必须支持的基本备用方案。A2DP还支持其他高级编解码器,例如AAC、aptX和LDAC,这些编解码器比SBC提供更好的音质,但这些编解码器的支持取决于设备本身的支持情况。注意A2DP协议要与AVRCP协议区分开。A2DP是传输音频的,而AVRCP是用来控制音频的。这里我用到的是RK3568 Android11。

leikko的博客 1176

poj 1035 Spell checker

题目大意:          题目出自:http://poj.org/problem?id=1035          你是一个新开发的“魔法检验系统”程序的程序员。现在系统中的一个模块由你开发。首先,数据中给了你一本字典,以“#”结束,单词数不超过10000个,单词的长度不超过15个字符,且均由小写字母组成。之后给了你一些待检验的单词,你需要按照以下规则检查单词:        (1)如果

继续微笑lsj 1966

实验7:机器学习油田产量预测-代码数据-完整代码数据可直接运行-计算机毕设

实验7:机器学习油田产量预测-代码数据-完整代码数据可直接运行-计算机毕设

机器学习深度学习业余选手 479

简要介绍 | 两阶段点云目标检测:理论与实践

目标检测是计算机视觉中的一个重要任务,其目的是识别和定位图像中的物体。对于二维图像,这已经有许多有效的方法。然而,对于三维数据(如由LiDAR生成的点云数据),目标检测则更为复杂。

NLOS的博客 1307

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

YOLOv12改进策略【损失函数篇】| 替换Powerful-IoU(PIoU),增强对中等质量锚框的关注力,引导锚框更直接、高效地回归

本文针对现有基于IoU的损失函数在目标检测任务中存在的问题,提出了利用Powerful-IoU(PIoU)及其升级版PIoU v2改进YOLOv12的损失函数,以提高模型精度。文章详细介绍了PIoU和PIoU v2的结构原理,并提供了在YOLOv12中实现这些损失函数的具体步骤和代码修改方法。

Limiiiing的博客 931

POJ 1035 拼写检查

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

qq_35215641的博客 1763

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

poj1035 Spell Checker

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

null 1325

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

POJ 1035-Spell checker(字符串)

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

Rocky0429 2046

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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

poj_1035

源链接:http://poj.org/problem?id=1035 水题,只要读清楚题目,按照题目要求做即可。 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#def

ThinkingLion的专栏 412

POJ1035-Spell checker(字符串,模拟)

POJ1035 原题链接:http://poj.org/problem?id=1035 Spell checker Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 25949   Accepted: 9505 Description You, as a

Yorozuya 301

poj 1035 Spell checker(hash)

题目链接:http://poj.org/problem?id=1035 思路分析: 1、使用哈希表存储字典 2、对待查找的word在字典中查找,查找成功输出查找成功信息 3、若查找不成功,对word增、删、改处理,然后在字典中查询,若查找成功则记录处理后单词在字典中的次序 4、对次序排序再输出 注:对word处理后可能会出现重复,需要进行判断重 代码如下: #i...

aqjh9999的博客 166

POJ 1035.Spell checker

题目:http://poj.org/problem?id=1035 AC代码(C++): #include #include #include #include #include #include #include using namespace std; int main(){ vectorstring> dic; for(;;){ string wor

njyexiong的博客 242

Poj-1035-Spell checker [字符串]

首先读入所有的字符串,并记录长度。每输入一个数据就遍历所有的字符串,从中找出长度相同或者相差1的字符串。并判断是否相差1个字符。 长度相同 从下标0到len如果全部匹配则输出is correct 如果相差为1个字符则输出该字符串,如果相差大于1个字符就continue 长度相差1 使用短的字符串去匹配长的字符串,并使用标记变量flag。如果出现不同字符则长串下标++,flag++。 如果fla

裤头是叫裤头的裤头 412

20-2-9-String-POJ1035

POJ1035 链接 水题, 过

shen253135371的博客 138
上一篇: 堆排序
下一篇: poj 1656 大水题
三易的博客
博客等级 码龄15年 42粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值