Table des matières
问题陈述
示例 1
Explanation
解释
示例例子2
方法
算法
示例:C程序
输出
结论
Maison développement back-end C++ Calculer le nombre de chaînes à concaténer avec des caractères dont la fréquence est supérieure à la somme des fréquences des autres caractères

Calculer le nombre de chaînes à concaténer avec des caractères dont la fréquence est supérieure à la somme des fréquences des autres caractères

Sep 03, 2023 pm 01:37 PM
字符 计算 频率

Calculer le nombre de chaînes à concaténer avec des caractères dont la fréquence est supérieure à la somme des fréquences des autres caractères

我们的主要目标是确定最多的字符串能够被连接起来,以确保只有一个字母的频率超过所有其他字符的总和,前提是有一个名为arr[]的包含M个字符串的数组。

在继续之前,让我们了解一些数组和字符串的基本概念。

数组就是一组相同数据类型的元素,存储在连续的内存区域中。

C编程语言中的数组具有固定的大小,这意味着一旦指定了大小,就无法更改;您无法缩小或扩展它。

让我们现在来研究一下什么是字符串。在C编程语言中,字符串是一组以空字符"\0"结尾的字符。C字符串中的字符被保存在字符数组中。与字符数组不同,C字符串之所以与字符数组相矛盾,是因为它以特殊的空字符结尾。

问题陈述

实现一个程序,用于确定要与频率大于其他字符之和的字符连接的字符串的数量。

示例 1

Let us take the input array 
arr[]: {“xyz", “yyyyx", “q”}
Copier après la connexion
Output obtained is: 3
Copier après la connexion

Explanation

的中文翻译为:

解释

这里元素 "x" 的频率为 2。

元素"y"的频率为5,元素"z"的频率为1。最后,

字符“q”的频率为1。

通过将数组中的三个字符串连接起来,我们得到 "xyzyyyyxq”。

这里字符 'y' 的频率为5,其余字符的频率总和为4。

示例例子2

Let us take the input array 
arr[]: {“mnoml", “lmll", “nln”, "mnlmn"}
Copier après la connexion
Output obtained is : 2
Copier après la connexion

Explanation

的中文翻译为:

解释

这里元素或字符“m”的频率为5。

元素 "n" 的频率为 5,元素 "l" 的频率为 6,最后字符 "o" 的频率为 1。

在这里,我们只能将两个字符串“lmllnl”连接起来。

字符l的频率为4。其他字符m和n的频率之和为2。为了依赖于拼接具有频率大于其他字符频率之和的字符的字符串,这是唯一可能的拼接。

方法

为了确定要与频率大于其他字符总和的字符连接的字符串的数量,我们采用以下方法。

解决这个问题的方法是通过迭代来获取要与频率大于其他字符频率之和的字符进行拼接的字符串的数量。

也就是说,我们通过迭代所有字符(即从"a"到"z")来确定所有字符串中每个字符的净频率。在这种情况下,净频率可以通过从中减去每个字符的其他频率来计算,因此如果总净频率大于0,则表示该元素的频率超过了所有其他频率的总和。

算法

下面给出了确定要与频率大于其他字符之和的字符连接的字符串计数的算法。

  • 第一步 - 开始

  • 第二步 − 定义函数以确定所有字符的频率,并减少字符串中其他频率的总和。

  • 第三步 - 迭代字符串数组 a

  • 第四步 - 定义一个整数变量来存储频率

  • 第五步 - 将频率存储在数组 v 中

  • 第六步 - 定义一个变量来存储最大计数

  • 第7步 - 遍历所有字母或元素

  • 第8步 - 返回最大值

  • 步骤 9 − 停止

示例:C程序

这是上述方法的C程序实现,用于计算要与频率大于其他字符总和的字符连接的字符串的数量。

#include <stdio.h>
#include <stdlib.h>
//input strings to be non-empty and not more //than 100 characters
#define MAX_STR_LEN 100

// Function to determine the frequencies of all the characters and reducing the sum of other frequencies in the strings
int* frequency(char** a, int len, char c){

   // We use array to store the frequency
   int* v = (int*)calloc(len, sizeof(int));
   if(v == NULL) {
      printf("Error: Memory allocation failed");
      exit(1);
   }
   
   // Iterating the array a of strings
   for (int i = 0; i < len; i++) {
      char* str = a[i];
      
      // defining an integer variable for storing //the frequencies
      int net_fre = 0;
      
      // Iterating through the string str
      for (int j = 0; str[j] != '\0'; j++) {
      
         // If str[j] is equal to the current character increment the net_fre by 1
         if (str[j] == c)
            net_fre++;
            
         // otherwise decrement net_fre by 1
         else
            net_fre--;
      }
      
      // After iterating the string store this frequency in the array v
      v[i] = net_fre;
   }
   
   //return the array v
   return v;
}

// Function to determine the count of the longest or the lengthiest string that could be obtained from the given array of strings
int longestConcatenatedString(char** a, int len){

   // An integer variable to store the maximum count Also it is set to zero
   int mxm = 0;
   
   // Iterating through all of the alphabets
   for (char c = 'a'; c <= 'z'; c++) {
   
      // Array to store the net_frequency of the character c after reducing the sum of every other frequencies in all of the strings
      int* v = frequency(a, len, c);
      
      // Array is stored in the order of descendants
      for (int i = 0; i < len - 1; i++) {
         for (int j = i + 1; j < len; j++) {
            if (v[i] < v[j]) {
               int temp = v[i];
               v[i] = v[j];
               v[j] = temp;
               char* temp_str = a[i];
               a[i] = a[j];
               a[j] = temp_str;
            }
         }
      }
      
      // Variable res is defined to store the //result
      int res = 0;
      int sum = 0;
      for (int i = 0; i < len; i++) {
         sum += v[i];
         
         // If sum is greater than 0 then increment res by 1
         if (sum > 0) {
            res++;
         }
      }
      
      // Keeping the track of the maximum one
      mxm = mxm > res ? mxm : res;
      free(v);
   }
   
   // Returning the maximum value obtained
   return mxm;
}
int main(){
   char* a[] = { "mnoml", "lmll", "nln", "mnlmn" };
   printf("Count of strings to be concatenated with a character having frequency greater than sum of others: ");
   int len = sizeof(a) / sizeof(a[0]);
   printf("%d", longestConcatenatedString(a, len));
   return 0;
}
Copier après la connexion

输出

Count of strings to be concatenated with a character having frequency greater than sum of others: 2
Copier après la connexion

结论

同样,我们可以计算要与频率大于其他字符之和的字符连接的字符串。

在这篇文章中,解决了获取程序来计算要与具有频率大于其他字符之和的字符串连接的挑战。

这里提供了C++编程代码以及算法,用于确定要与频率大于其他字符之和的字符连接的字符串的数量。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La multiplication matricielle universelle de CUDA : de l'entrée à la maîtrise ! La multiplication matricielle universelle de CUDA : de l'entrée à la maîtrise ! Mar 25, 2024 pm 12:30 PM

La multiplication matricielle générale (GEMM) est un élément essentiel de nombreuses applications et algorithmes, et constitue également l'un des indicateurs importants pour évaluer les performances du matériel informatique. Une recherche approfondie et l'optimisation de la mise en œuvre de GEMM peuvent nous aider à mieux comprendre le calcul haute performance et la relation entre les systèmes logiciels et matériels. En informatique, une optimisation efficace de GEMM peut augmenter la vitesse de calcul et économiser des ressources, ce qui est crucial pour améliorer les performances globales d’un système informatique. Une compréhension approfondie du principe de fonctionnement et de la méthode d'optimisation de GEMM nous aidera à mieux utiliser le potentiel du matériel informatique moderne et à fournir des solutions plus efficaces pour diverses tâches informatiques complexes. En optimisant les performances de GEMM

Comment calculer l'addition, la soustraction, la multiplication et la division dans un document Word Comment calculer l'addition, la soustraction, la multiplication et la division dans un document Word Mar 19, 2024 pm 08:13 PM

WORD est un traitement de texte puissant. Nous pouvons utiliser Word pour éditer divers textes. Dans les tableaux Excel, nous maîtrisons les méthodes de calcul d'addition, de soustraction et de multiplicateurs. Ainsi, si nous avons besoin de calculer l'addition de valeurs numériques dans les tableaux Word, Comment soustraire le multiplicateur ? Puis-je utiliser uniquement une calculatrice pour le calculer ? La réponse est bien sûr non, WORD peut aussi le faire. Aujourd'hui, je vais vous apprendre à utiliser des formules pour calculer des opérations de base telles que l'addition, la soustraction, la multiplication et la division dans des tableaux dans des documents Word. Apprenons ensemble. Alors, aujourd'hui, permettez-moi de vous montrer en détail comment calculer l'addition, la soustraction, la multiplication et la division dans un document WORD ? Étape 1 : ouvrez un WORD, cliquez sur [Tableau] sous [Insérer] dans la barre d'outils et insérez un tableau dans le menu déroulant.

Comment compter le nombre d'éléments dans une liste à l'aide de la fonction count() de Python Comment compter le nombre d'éléments dans une liste à l'aide de la fonction count() de Python Nov 18, 2023 pm 02:53 PM

Comment utiliser la fonction count() de Python pour compter le nombre d'éléments dans une liste nécessite des exemples de code spécifiques. En tant que langage de programmation puissant et facile à apprendre, Python fournit de nombreuses fonctions intégrées pour gérer différentes structures de données. L'une d'elles est la fonction count(), qui peut être utilisée pour compter le nombre d'éléments dans une liste. Dans cet article, nous expliquerons en détail comment utiliser la fonction count() et fournirons des exemples de code spécifiques. La fonction count() est une fonction intégrée de Python, utilisée pour calculer un certain

Qu'est-ce qui a le plus d'impact sur les performances, la fréquence de la mémoire ou le timing ? Qu'est-ce qui a le plus d'impact sur les performances, la fréquence de la mémoire ou le timing ? Feb 19, 2024 am 08:58 AM

La mémoire est l’un des composants les plus importants de l’ordinateur et elle a un impact significatif sur les performances et la stabilité de l’ordinateur. Lors du choix de la mémoire, les gens ont tendance à se concentrer sur deux paramètres importants, à savoir le timing et la fréquence. Alors, pour les performances de la mémoire, qu’est-ce qui est le plus important : le timing ou la fréquence ? Tout d’abord, comprenons les concepts de timing et de fréquence. La synchronisation fait référence à l'intervalle de temps requis par une puce mémoire pour recevoir et traiter les données. Elle est généralement représentée par une valeur CL (CASLatency). Plus la valeur CL est petite, plus la vitesse de traitement de la mémoire est rapide. La fréquence est dans

Programme Java pour calculer l'aire d'un triangle à l'aide de déterminants Programme Java pour calculer l'aire d'un triangle à l'aide de déterminants Aug 31, 2023 am 10:17 AM

Introduction Le programme Java pour calculer l'aire d'un triangle à l'aide d'un déterminant est un programme concis et efficace qui peut calculer l'aire d'un triangle à partir des coordonnées de trois sommets. Ce programme est utile à toute personne qui apprend ou travaille avec la géométrie, car il montre comment utiliser les calculs arithmétiques et algébriques de base en Java, ainsi que comment utiliser la classe Scanner pour lire les entrées de l'utilisateur. Le programme demande à l'utilisateur les coordonnées de trois points du triangle, qui sont ensuite lues et utilisées pour calculer le déterminant de la matrice de coordonnées. Utilisez la valeur absolue du déterminant pour vous assurer que l'aire est toujours positive, puis utilisez une formule pour calculer l'aire du triangle et l'afficher à l'utilisateur. Le programme peut être facilement modifié pour accepter des entrées dans différents formats ou pour effectuer des calculs supplémentaires, ce qui en fait un outil polyvalent pour les calculs géométriques. rangs de déterminants

Compter le nombre d'occurrences d'une sous-chaîne de manière récursive en Java Compter le nombre d'occurrences d'une sous-chaîne de manière récursive en Java Sep 17, 2023 pm 07:49 PM

Étant donné deux chaînes str_1 et str_2. Le but est de compter le nombre d'occurrences de la sous-chaîne str2 dans la chaîne str1 en utilisant une procédure récursive. Une fonction récursive est une fonction qui s'appelle dans sa définition. Si str1 est "Je sais que vous savez que je sais" et str2 est "savoir", le nombre d'occurrences est de -3 Comprenons à travers des exemples. Par exemple, entrez str1="TPisTPareTPamTP", str2="TP" ; sortie Countofoccurrencesofasubstringrecursi.

Comment utiliser la fonction Math.Pow en C# pour calculer la puissance d'un nombre spécifié Comment utiliser la fonction Math.Pow en C# pour calculer la puissance d'un nombre spécifié Nov 18, 2023 am 11:32 AM

En C#, il existe une bibliothèque de classes Math, qui contient de nombreuses fonctions mathématiques. Il s'agit notamment de la fonction Math.Pow, qui calcule les puissances, ce qui peut nous aider à calculer la puissance d'un nombre spécifié. L'utilisation de la fonction Math.Pow est très simple, il suffit de spécifier la base et l'exposant. La syntaxe est la suivante : Math.Pow(base,exponent) ; où base représente la base et exponent représente l'exposant. Cette fonction renvoie un résultat de type double, c'est-à-dire le résultat du calcul de puissance. Allons

Manière correcte d'afficher les caractères chinois dans matplotlib Manière correcte d'afficher les caractères chinois dans matplotlib Jan 13, 2024 am 11:03 AM

Afficher correctement les caractères chinois dans matplotlib est un problème souvent rencontré par de nombreux utilisateurs chinois. Par défaut, matplotlib utilise des polices anglaises et ne peut pas afficher correctement les caractères chinois. Pour résoudre ce problème, nous devons définir la police chinoise correcte et l'appliquer à matplotlib. Vous trouverez ci-dessous quelques exemples de code spécifiques pour vous aider à afficher correctement les caractères chinois dans matplotlib. Tout d’abord, nous devons importer les bibliothèques requises : importmatplot

See all articles