算法设计与分析作业1🌻🌻🌻
The first question:🍀🍀
解析:
The second question:🍀🍀
代码:🌝🌝🌝
#include <iostream>
#include <string>
using namespace std;
bool solve(string str){
int i=0, j=str.length()-1; // i指向字符串第一个字符,j指向最后一个字符
while(i<j){
if(str[i]!=str[j])
return false;
i++;
j--;
}
return true;
}
int main(){
cout << "求解结果" << endl;
string str="abcd";
cout << " " << str << (solve(str)?"是回文":"不是回文") << endl;
string str1="abba";
cout << " " << str1 << (solve(str1)?"是回文":"不是回文") << endl;
}
结果:👀👀
The third question:🍀🍀
代码:🌝🌝🌝
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int solve(vector<int> &l){
sort(l.begin(), l.end());
int a=1;
int mindif=l[1]-l[0];
for(int i=2;i<l.size();i++){
if(l[i]-l[i-1]<mindif){
a=1;
mindif=l[i]-l[i-1];
}
else if(l[i]-l[i-1] == mindif)
a++;
}
return a;
}
void main(){
int a[]={4,1,2,3};
int n=sizeof(a)/sizeof(a[0]);
vector<int> l(a,a+n);
cout << "相差最小的元素对的个数:" << solve(l) << endl;
}
结果:👀👀
Tha's the end~thank you for reading ~*