与C ++中英文字母相同距离的字符对计数

我们给了一个字符串,任务是计算与我们在英语字母中具有相同距离的字符对的数量。

输入-字符串str ='nhooo.com'

输出-与英语字母相同距离的字符对计数为:5

说明-与英语字母具有相同距离的字符对是(u,t),(u,r),(t,r),(i,o)和(s,n)。因此,总共有5对。

输入-字符串str ='学习是最好的习惯'

输出-与英语字母相同距离的字符对计数为:12

说明-与英文字母具有相同距离的字符对是(r,i),(r,h),(n,i),(n,b),(i,g),(n,t),( g,i),(i,b),(s,h),(h,t),(s,t)和(a,b)。因此,总共有12对。

以下程序中使用的方法如下

  • 输入字符串并将数据传递给函数

  • 进行临时变量计数以存储可以形成的对的总数

  • 使用length()函数计算字符串的长度

  • 从i到0开始循环直到字符串的长度

  • 在循环内,从j到i + 1开始另一个循环,直到字符串的长度

  • 在循环内部,将temp设置为abs(str [i]-str [j])

  • 检查IF temp = abs(ij),然后将计数增加1

  • 返回计数

  • 打印结果。

示例

#include <bits/stdc++.h>
using namespace std;
int pairs_distance(string str){
   int count = 0;
   int len = str.length();
   for (int i = 0; i < len; i++){
      for (int j = i + 1; j < len; j++){
         int temp = abs(str[i] - str[j]);
         if (temp == abs(i - j)){
            count++;
         }
      }
   }
   return count;
}
int main(){
   string str = "nhooo.com";
   cout<<"Count of character pairs at same distance as in English alphabets are: "<<pairs_distance(str);
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

Count of character pairs at same distance as in English alphabets are: 5