编写一个名为 find_mismatch 的函数,该函数接受两个字符串作为输入参数
Write a function named find_mismatch that accepts two strings as input arguments
我正在尝试编写此函数,但我卡住了。只是想在春假做一些练习。如果有人有全新的方法,我是开放的。我知道这段代码是一个可悲的景象,但我无法理解它。提前谢谢。
- 如果两个字符串完全匹配,则为 0。
- 如果两个字符串的长度相同且仅在一个字符中不匹配,则为 1。
- 如果两个字符串的长度不同或两个或多个字符不匹配,则为 2。
法典:
void findMismatch (const string s1, const string s2)
{int count;
if (s1.length() != s2.length())
{
cout <<"2"<< endl;
}
if (s1 == s2)
{
cout <<"0"<< endl;
}
这是我整理的解决方案。
#include <iostream>
#include <string>
using namespace std;
void findMismatch(string s1, string s2)
{
if(s1.length() != s2.length())
{
cout<<"2"<<endl;
}
else if(s1 == s2) //exact match
{
cout<<"0"<<endl;
return;
}
else
{
int mismatchCount = 0;
int i = 0;
while(i < s1.length() && mismatchCount<=1)
{
if(s1.at(i) != s2.at(i) && ++mismatchCount == 2)
{
cout<<"2"<<endl;
return;
}
i++;
}
cout<<"1"<<endl;
}
}
int main()
{
findMismatch("Achr","Acha"); //one mismatch
findMismatch("Achrfs","Achaee"); //two or more mismatch
findMismatch("Ach","Ach"); //exact match
findMismatch("Achrfdfd","Acha"); //different lengths
}
相关文章:
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 具有两个间接寻址运算符 (C++) 的函数参数的用途
- 如何巧妙地编写两个函数——一个用于检查是否存在解决方案,另一个用于获取所有解决方案
- 两个父类的构造函数的序列
- 具有相同特征的两个对象是否只在内存中存储一次?无论定义它们的函数是什么,都是不同的
- C++如果两个模板函数都与参数列表匹配,将调用哪个模板
- 如何从两个不同的函数传递参数
- 两个函数模板候选项.将一个参数作为引用后,选择不太专业的模板
- 如何比较两个函数的速度和性能
- 是否可以使用非常量指针调用非常量函数,以及当两个unique_ptrs指向同一个对象时程序的行为方式?
- 有一个构造函数,但有两个析构函数
- 为什么系统日志有两个不同的函数声明?
- 为什么在传递长整型时调用具有两个双精度类型的参数的重载函数?
- C++ 关于两个类构造函数的问题
- 如何创建两个具有相同名称和不同返回类型并基于布尔参数运行的函数
- 如何在构造器的成员初始值设定项列表中调用两个函数?
- 如何将这两个函数组合成一个实现?
- 将函数两个向量合并为第三个向量
- C++朋友函数两个数字的加法