แนวคิด
สมมติว่ามีสตริง s และ t ประกอบด้วยตัวอักษรพิมพ์เล็กเท่านั้น สตริง t สร้างโดยการสุ่มลำดับ s แล้วเพิ่มตัวอักษรอีกหนึ่งตัวที่ดัชนีสุ่ม ต้องหาตัวอักษรที่เพิ่มใน t
เช่น ถ้าอินพุตคือ "mnopq","pqmnot" ผลลัพธ์คือ "t" นี่คือตัวอักษรเพิ่ม
วิธีแก้:
- sSum := 0, tSum := 0
- วนลูป i := 0 ถึงความยาว s - 1: sSum := sSum + s[i]
- วนลูป j := 0 ถึงความยาว t - 1: tSum := tSum + t[j]
- คืนค่า (tSum - sSum) เป็นตัวอักษร
ตัวอย่าง
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
char findTheDifference(string s, string t) {
int sSum = 0;
int tSum = 0;
for (int i = 0; i < s.length(); i++) {
sSum += s[i];
}
for (int j = 0; j < t.length(); j++) {
tSum += t[j];
}
return char(tSum - sSum);
}
};
main() {
Solution ob;
cout << (ob.findTheDifference("mnopq","pqmnot"));
}
อินพุต
"mnopq","pqmnot"
เอาต์พุต
t