在 C++ 中統計 ASCII 值之和小於和大於 k 的單詞數量
給定一個包含句子的字串 str 和一個數字 k。目標是找到 str 中 ASCII 值小於 k 的單詞數量以及 ASCII 值大於 k 的單詞數量。
ASCII - 賦予語言中每個字元的唯一程式碼數字。
讓我們透過示例來理解。
輸入 - str= “This is ASCII”。k=300
輸出 - ASCII 值之和小於 k 的單詞數量為 - 1
ASCII 值之和大於 k 的單詞數量為 - 2
解釋 - 單詞“is”的 ASCII 值小於 300,其他兩個也一樣。
輸入 - str= “set set set”。k=300
輸出 - ASCII 值之和小於 k 的單詞數量為 - 0
ASCII 值之和大於 k 的單詞數量為 - 3
解釋 - 所有單詞都相同,並且 ASCII 值都大於 300。
下面程式中使用的方法如下
我們將使用 for 迴圈遍歷字串 str。對於空格後的每個單詞,開始將 str[i] 新增到總和中。如果這 >k。增加計數。
將字串作為 str,整數作為 k。
函式 words_less_greater(string str, int k, int length) 獲取字串並返回 ASCII 值小於和大於 k 的單詞數量。
將 temp 設為 0,表示 str 中每個單詞的 ASCII 值。
將 count 設為 0,表示 ASCII 值小於 k 的單詞數量。
將 total 設為 0,表示 k 中的單詞總數。
使用 for 迴圈遍歷 str。
對於每個空格後的單詞 str[i]==‘ ‘。將它的字元 str[i] 新增到 temp 中。在單詞結束之後,檢查 temp<k。如果是,則增加 count 和 total。
如果不是,則僅增加 total。
最後,count 包含 ASCII 值小於 k 的單詞數量。total - count 將是 ASCII 值大於 k 的單詞數量。
列印結果。
示例
#include <bits/stdc++.h>
using namespace std;
void words_less_greater(string str, int k, int length){
int temp = 0;
int total = 0;
int count = 0;
for (int i = 0; i < length; ++i){
if (str[i] == ' '){
if (temp < k){
count++;
}
temp = 0;
total++;
}
else{
temp += str[i];
}
}
total++;
if (temp < k){
count++;
}
cout<<"Count of number of words having sum of ASCII values less than k are: "<< count;
cout<<"\nCount of number of words having sum of ASCII values greater than k are: "<< total -
count;
}
int main(){
string str = "tutorials point";
int k = 900;
int length = str.length();
words_less_greater(str, k, length);
return 0;
}輸出
如果我們執行以上程式碼,它將生成以下輸出 -
Count of number of words having sum of ASCII values less than k are: 1 Count of number of words having sum of ASCII values greater than k are: 1
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP