Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับไม่ ของคอลัมน์ที่ไม่ได้เรียงลำดับเพิ่มขึ้นใน C++


เราได้รับอาร์เรย์ของสตริงที่มีความยาวเท่ากัน เป้าหมายคือการหาคอลัมน์ ( matrixof strings ) ที่ไม่ได้เรียงลำดับเพิ่มขึ้น ตัวอย่างเช่น อักขระตัวแรกในสตริงจะถูกเปรียบเทียบกับอักขระตัวแรกของสตริงถัดไป และต่อไปเรื่อยๆ จนถึงสตริงสุดท้าย ถ้าไม่เรียงลำดับเพิ่มขึ้น ให้เพิ่มจำนวนขึ้น ทำเช่นนี้กับอักขระที่สองทั้งหมด จากนั้นจึงใช้อักขระที่สามของสตริงทั้งหมด และอื่นๆ จนถึงอักขระสุดท้าย

อินพุต

Arr[]= { “abc”, “bcd”, “def” }

ผลลัพธ์

Count of columns: 0

คำอธิบาย − สำหรับแต่ละคอลัมน์

คอลัมน์ 1:อักขระที่ดัชนี 0 :a

คอลัมน์ 2:อักขระที่ดัชนี 1 :b

คอลัมน์ 3:อักขระที่ดัชนี 2 :c

อักขระที่เกี่ยวข้องทั้งหมดในคอลัมน์จะถูกจัดเรียงตามลำดับที่เพิ่มขึ้น

อินพุต

Arr[]= { “dbd”, “faf”, “eeg” }

ผลลัพธ์

Count of columns: 2

คำอธิบาย − สำหรับแต่ละคอลัมน์

คอลัมน์ 1 - อักขระที่ดัชนี 0 :dg

คอลัมน์ 2 – อักขระที่ดัชนี 1 :b>a

คอลัมน์ 3 - อักขระที่ดัชนี 2 :d

คอลัมน์ 1 และ 2 มีอักขระโดยไม่มีการเรียงลำดับ นับ=2

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • อาร์เรย์อักขระ arr[][] ใช้เพื่อเก็บสตริงที่มีความยาวเท่ากัน

  • ฟังก์ชัน countCols(char str[3][4],int n,int len) รับอาร์เรย์สตริง หมายเลข ของสตริงในนั้นและความยาวของแต่ละสตริงเป็นอินพุตและส่งคืนจำนวนคอลัมน์ที่ไม่เรียงลำดับเพิ่มขึ้น

  • เริ่มต้นการนับด้วย 0

  • Col ใช้แทนคอลัมน์ปัจจุบัน ( ดัชนีทั่วไปสำหรับสตริงทั้งหมด )

  • สำรวจแต่ละสตริงพร้อมกันโดยเริ่มจากดัชนีแรกโดยใช้ for วนซ้ำจนถึงความยาวของสตริง (ความยาวเท่ากันสำหรับทุกคน)

  • แต่ละสตริงมี 3 อักขระ เราจึงเปรียบเทียบ str[col][j]>str[col+1][j-1] ||str[col+1][j]>str[col+2][j- 1]. หากเงื่อนไขใดเป็นจริงให้เพิ่มจำนวน

  • หลังจากสิ้นสุด for loop ให้คืนค่าผลลัพธ์ที่มีอยู่ในการนับ

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
int countCols(char str[3][4],int n,int len){
    int i,j;
   int count=0;
   int col=0;
   for(j=0;j<len;j++){
      if(str[col][j]>str[col+1][j-1] || str[col+1][j]>str[col+2][j-1] )
         count++;
   }
   return count;
}
int main(){
   char arr[3][4]={"abc", "daf", "ghi"};
   cout<<"\nColumns that are not sorted:"<<countCols(arr,3,3);
   return 0;
}

ผลลัพธ์

Columns that are not sorted:2