เราได้รับสตริงของตัวอักษรและความกว้างอาร์เรย์[]ที่มีความกว้างของตัวอักษรภาษาอังกฤษทั้งหมด เป้าหมายคือการค้นหาจำนวนบรรทัดที่จำเป็นในการพิมพ์สตริงนี้บนหน้าเว็บที่มีความกว้าง 10 อักขระ พิมพ์อักขระที่เหลือด้วย
เราจะสำรวจสตริงตรวจสอบความกว้างของอักขระปัจจุบัน และเพิ่ม ถ้าผลรวมนี้>=10 เพิ่มจำนวนบรรทัด
มาทำความเข้าใจกับตัวอย่างกัน
ป้อนข้อมูล
Str = "ababababab" widths[] = {2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 3, 1, 1, 1, 2, 1, 1, 1};
ผลผลิต
Count of lines: 2 Remaining width: 6
คำอธิบาย
line 1 : ababab ( 2+1+2+1+2+1 = 3+3+3=9) line 2 : abab (2+1+2+1)
ป้อนข้อมูล
Str = "bbbbbbbbbbdd" widths[] = {2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 3, 1, 1, 1, 2, 1, 1, 1};
ผลผลิต
Count of lines: 2 Remaining width: 2
คำอธิบาย
line 1 : bbbbbbbbbb (1+1+1+1+1+1+1+1+1+1=10) line 2 : dd (1+1)
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
เรามีสตริง Str และความกว้างอาร์เรย์[] ของช่องว่างของแต่ละตัวอักษร
-
ฟังก์ชัน numberOfLines(string str,int len, int w[]) แสดงจำนวนบรรทัดในหน้าและความกว้างของอักขระในบรรทัดสุดท้าย
-
นับบรรทัดเริ่มต้นเป็น numoflines=0
-
ใช้ความกว้างบรรทัดสุดท้ายเริ่มต้นเป็นเหลือ=0
-
Traverse string str ใช้ for loop.
-
ใช้อักขระปัจจุบัน c เป็น str[i].
-
ตรวจสอบความกว้างของ c เป็น num=width[c-’a’].
-
เพิ่มจำนวนนี้เพื่อคงอยู่
-
หากยังคงอยู่>=10 เพิ่มจำนวนบรรทัดและการอัพเดทยังคงเป็น num.
-
พิมพ์ผลลัพธ์ที่ส่วนท้ายของลูป
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; // Function to return the number of lines required void numberOfLines(string str,int len, int w[]){ int numoflines = 0; int remain = 0; //traversing string for (int i=0;i<len;i++){ char c=str[i]; //current character int num = w[c - 'a']; //units for current character remain += num; if (remain >= 10){ numoflines+=1; remain = num; } } cout<<"Count of lines: "<<numoflines; cout<<endl<<"Remaining width: "<<remain; } int main(){ string Str = "abcdefghijklmnop"; int length=Str.length(); int widths[] = {2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 2, 1, 1, 1}; numberOfLines(Str,length,widths); return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Count of lines: 3 Remaining width: 1