c语言找相似串

任务描述
本关任务:找出最接近的相似串。

一般情况下,度量两个串S1和S2的相似性,可以通过从一个串变换成另一个串所需要的最少操作次数来衡量,需要的操作次数越少,则越相似。

假设从一个串变化成另一个串所允许的操作只有两种:插入一个字符或者删除一个字符。无论是插入还是删除一个符号,均算作一次操作。

现给你一个串S,和一个串的集合T,让你找出集合T中与S最相似的串。

编程要求
右侧编辑器中有一个函数Similar,请在这个函数中读取数据完成任务。

输入数据由学员处理。输入的第一行为一个串S,第二行是一个整数n,范围0 < n < 20,表示接下来集合T中的串的个数。接下来n行,每行为一个串。

注:所有字符串的长度不超过50。

请输出T中与S最相似的串,如果有多个就输出多个串(按照输入时的顺序),每个串占一行。具体见测试说明。

测试说明
平台会对你编写的代码进行测试:

测试输入:
abcd
4
abd
abdc
abed
aebcd

预期输出:
abd
aebcd

提示:
对于第一个串abd,在b后插入一个c就可以变成abcd,操作次数为1次。
第二个串abdc,删除d后面的c,在d前面增加一个c,即可变成abcd,操作次数为2次。
第三个串abed,删除d前面的e,在d前面增加一个c,即可变成abcd,操作次数为2次。
第四个串aebcd࿰

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Python中的图像处理库和特征提取算法来实现这个功能。以下是一个可能的实现方法: 1. 导入必要的库: ```python import os import cv2 import numpy as np from skimage.measure import compare_ssim ``` 2. 定义一个函数来计算两张图片之间的相似度,可以使用结构相似性指数(SSIM)作为相似度度量标准: ```python def calculate_similarity(image1, image2): # 将图像转换为灰度图 gray1 = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY) gray2 = cv2.cvtColor(image2, cv2.COLOR_BGR2GRAY) # 计算SSIM值 (_, similarity) = compare_ssim(gray1, gray2, full=True) return similarity ``` 3. 定义一个函数来查和目标图片最相似的图片: ```python def find_similar_image(target_image_path, folder_path): # 读取目标图片 target_image = cv2.imread(target_image_path) # 遍历文件夹中的所有图片文件 max_similarity = 0 similar_image_path = None for file_name in os.listdir(folder_path): file_path = os.path.join(folder_path, file_name) # 忽略非图片文件 if not file_path.endswith(('.jpg', '.jpeg', '.png')): continue # 读取当前图片 current_image = cv2.imread(file_path) # 计算当前图片与目标图片的相似度 similarity = calculate_similarity(target_image, current_image) # 更新最相似图片的路径和相似度 if similarity > max_similarity: max_similarity = similarity similar_image_path = file_path return similar_image_path ``` 4. 调用`find_similar_image`函数并传入目标图片和文件夹路径来查相似的图片: ```python target_image_path = 'path/to/target_image.jpg' folder_path = 'path/to/images_folder' similar_image_path = find_similar_image(target_image_path, folder_path) print('The most similar image is:', similar_image_path) ``` 请确保将`target_image_path`和`folder_path`替换为实际的目标图片路径和文件夹路径。 这个实现方法使用了OpenCV库来读取和处理图像,并使用了scikit-image库中的SSIM函数来计算相似度。你可以根据需要进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值