`
Coco_young
  • 浏览: 119679 次
  • 性别: Icon_minigender_1
  • 来自: 湖南长沙
社区版块
存档分类
最新评论

POJ_1035_水题_字符串

阅读更多
题目链接:
http://poj.org/problem?id=1035




思路是,拿每个带检测字符串和整个字典里的字进行比较,如果有一样的即为correct,如果没有一样的分三种情况:
1.长度相同.
2.带检测字长度比字典里的字少1
3.带检测字长度比字典里的字多1

长度相同时检查不同字符的个数(为1时即可以替换),长度不同时拿较短的字去匹配较长的字,较短字每个字符在较长字中的位置存放在一个数组里,匹配完成后,扫描数组看是否为递增的,并且每一个字符都在较长字中出现。

#include<stdio.h>
#include<string.h>
#define SIZE 11000
char dic[SIZE][20];
int cnt;
void read_dic()//读取字典
{
     cnt = 0;
     while(scanf("%s%*c",dic[cnt]))
     {
        if(dic[cnt][0]=='#')
        break;
        else
        cnt++;
     }
}
bool isCor(char *str)//是否正确 
{
     int i;
     for(i=0;i<cnt;i++)
     if(strcmp(dic[i],str)==0)return true;
     return false;
} 
void Replace(char *str)//替换
{
     printf("%s:",str);
     int i,j,k,arr[20],diff,isSort;
     int ls = strlen(str),ld;
     for(i=0;i<cnt;i++)
     {
        ld = strlen(dic[i]);
        if(ls==ld)//如果长度相同 
        {
            diff = 0;
            for(j=0;j<ld;j++)
            {
               if(str[j]!=dic[i][j]) diff++;
            }
            if(diff==1)printf(" %s",dic[i]);
        }
        else if(ls==ld+1)//delete
        {
            memset(arr,-1,sizeof(arr));
            for(j=0;j<ld;j++)
            {
               for(k=j==0?0:arr[j-1]+1;k<ls;k++)
               {
                  if(str[k]==dic[i][j])
                  {
                      arr[j] = k;
                      break;
                  }
               }
            }
            isSort = 1;
            //检查arr是否有序
            for(j=0;j<ld-1;j++)
            {
               if(arr[j+1]<arr[j]||arr[j]==-1)
               {
                  isSort = 0;
                  break;
               }
            } 
            if(arr[ld-1]==-1)isSort = 0;
            if(isSort)printf(" %s",dic[i]);
        }
        else if(ls+1==ld)//add
        {
            memset(arr,-1,sizeof(arr));
            for(j=0;j<ls;j++)
            {
               for(k=j==0?0:arr[j-1]+1;k<ld;k++)
               {
                  if(str[j]==dic[i][k])
                  {
                      arr[j] = k;
                      break;
                  }
               }
            }
            isSort = 1;
            //检查arr是否有序
            for(j=0;j<ls-1;j++)
            {
               if(arr[j+1]<arr[j]||arr[j]==-1)
               {
                  isSort = 0;
                  break;
               }
            } 
            if(arr[ls-1]==-1)isSort = 0;
            if(isSort)printf(" %s",dic[i]);
        }
     }
} 
int main()
{
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    read_dic();
    char str[20];
    while(scanf("%s%*c",str),str[0]!='#')
    {
        if(isCor(str))
        printf("%s is correct\n",str);
        else
        {
           Replace(str);
           printf("\n");
        }
    }
}

  • 大小: 15.5 KB
分享到:
评论

相关推荐

    在Coursera学习机器学习课程时,自己用python从原理上实现的各种机器学习基础内容.zip

    机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特定任务或者改进自身性能。机器学习的核心思想是让计算机系统通过学习数据中的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像中的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。

    管理系统源码+系统主要分员工管理员两个角色+管理模块具体有商品管理

    系统主要分员工管理员两个角色 管理模块具体有商品管理,部门员工管理,进货管理,订单管理,换货管理,供应商管理,供应商管理,客户管理,公告通知管理等模块,而员工模块具体由商品管理,进货管理,订单管理,供应商管理,客户管理,换货订单管理,公告通知管理等模块组成。 仓库管理信息系统所涉及的主要数据包括商品管理、进货管理、订单管理、换货管理和供应商管理,客户管理,公告通知管理下面分别分析这些数据需求。 (1)商品管理 商品管理主要是管理商品分类信息以及管理商品信息。 (2)进货管理 进货管理主要员工可以登记进货信息,以及查看我的进货记录,而管理员可以添加进货信息以及对进货信息的管理。 (3)订单管理 订单管理主要是对订单的一个统计,员工对销售的订单进行登记,管理员可以管理员工们的订单销售。 (4)换货管理 换货管理主要员工可以登记换货信息,以及查看我的换货记录,而管理员可以添加换货信息以及对换货信息的管理。 (5)供应商管理 管理员可以管理对他们厂家的供应商,来达到可以很好及时的跟供应商进行沟通。 (6)客户管理 管理员可以管理客户。对客户进行维护。

    清新卡通城市建筑大学毕业论文答辩.ppt.zip

    清新卡通城市建筑大学毕业论文答辩.ppt

    5V继电器控制模块原理图+教程.7z

    5V继电器控制模块原理图+教程.7z

    commons-lang-1.0.zip

    commons-lang.jar_服务器端非空校验 各个版本,免费下载 windows版本,linux 版本,免费下载

    水彩清新创意毕业论文答辩模板.pptx.zip

    水彩清新创意毕业论文答辩模板.pptx

    ASP.NET基于BS方式的即时通讯软件的设计与实现(源代码+论文).rar

    计算机毕业设计,含源码

    myudid

    myudid

    新型MNS抽屉柜sw15可编辑设计图纸.7z

    新型MNS抽屉柜sw15可编辑设计图纸.7z

    基于ASP的学生信息档案管理系统毕业论文及源码.zip

    基于ASP的学生信息档案管理系统毕业论文及源码

    小清新文艺田园风毕业论文答辩.ppt.zip

    小清新文艺田园风毕业论文答辩.ppt

    PC控制八路继电器控制板原理图+教程+源代码+下位机源代码+上位机源代码.7z

    PC控制八路继电器控制板原理图+教程+源代码+下位机源代码+上位机源代码.7z

    属性数据分析实验.ipynb

    属性数据分析实验.ipynb

    纸张风格背景【论文答辩PPT模板】.pptx.zip

    纸张风格背景【论文答辩PPT模板】.pptx

    commons-lang3-3.0-beta-bin.zip

    commons-lang.jar_服务器端非空校验 各个版本,免费下载 windows版本,linux 版本,免费下载

    C++中的数学常用函数及其定义

    C++中的数学常用函数及其定义

    fastjson1.2.8 jar包及其源码下载(附带Gson jar包).rar

    fastjson1.2.8 jar包及其源码下载(附带Gson jar包) 免费下载, fastjson.jar是阿里开发的一款专门用于Java开发的包,可以方便的实现json对象与JavaBean对象的转换,实现JavaBean对象与json字符串的转换,实现json对象与json字符串的转换。

    用于了解基本的机器学习原理及算法,掌握sklearn库中常用的机器学习算法的基本调用方法.zip

    机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特定任务或者改进自身性能。机器学习的核心思想是让计算机系统通过学习数据中的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像中的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。

    一个简单的嵌入式与物联网开发脚本示例,用于控制一个假设的LED灯的开关

    这个脚本模拟了一个嵌入式环境中LED灯的开关控制。在实际应用中,你需要根据你所使用的硬件平台(如Raspberry Pi、Arduino等)和具体的GPIO库来调整代码。此外,你还可能需要集成网络通信功能,以便通过物联网技术(如MQTT、HTTP等)远程控制LED灯。 请注意,这只是一个非常基础的示例,用于演示如何在Python中模拟GPIO操作。在真实项目中,你可能还需要考虑更多的因素,如错误处理、多线程/异步操作、电源管理、安全性等。而且,在嵌入式系统上运行Python代码可能还需要交叉编译或特定的运行环境。

    WOA_注释版.rar

    WOA_注释版

Global site tag (gtag.js) - Google Analytics