Tìm các cặp kí tự giống nhau

Em mới code một ít nhưng gặp lỗi này em không biết phải sửa thế nào ạ, mọi người xem giúp em với, em cảm ơn nhiều ạ

#include "pch.h"
#include <iostream>
#include <math.h>
using namespace std;
int stringLength(string word)
{
	int i = 0;
	while (word[i] != '\0') i++;
	return i;
}
int isEvenWord(string word)
{
	int lengthWord = stringLength(word);
	string *checkWord = new string[lengthWord];
	int count = 0;
	if (lengthWord % 2 == 1) return -1;
	for (int i = 0; i < lengthWord; i++)
	{
		for (int j = 0; j < lengthWord; j++)
		{
			int run = 0;
			while (checkWord[run] != '\0' && checkWord[run] != i) run++;
			if (word[i] = word[j]&& run == stringLength(checkWord))
			{
				checkWord[2*i] = i;
				checkWord[2*i + 1] = j;
				checkWord[2 * i + 2] = '\0';
				count++; 
			}
		}
	}
	if (count == lengthWord / 2) return count;
	else return -1;
}

int main()
{
	
	return 0;
}

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3

std::string thì chấm length thôi chứ :smiley:

checkWordstring* vậy checkWord[] là string sao so với char được.

4 Likes

Em hiểu rồi ạ, em cảm ơn nhiều nhiều :smile:

Em đã sửa lại code thế này, nhưng không ra được kết quả như ý muốn ạ. Mọi người xem và cho ý kiến giúp em. Đề bài yêu cầu là trả về số cặp trùng nhau trong string.
VD: “bananaab”-> 4, còn lại sẽ trả về -1

#include "pch.h"
#include <iostream>
#include <math.h>
using namespace std;
int stringLength(string word)
{
	int i = 0;
	while (word[i] != '\0') i++;
	return i;
}
int isEvenWord(string word)
{
	int lengthWord = stringLength(word);
	char *checkWord = new char[lengthWord];
	checkWord[0] = '\0';
	int count = 0;
	if (lengthWord % 2 == 1) return -1;
	for (int i = 0; i < lengthWord; i++)
	{
		for (int j = 0; j < lengthWord; j++)
		{
			int run = 0;
			while (checkWord[run] != '\0' && checkWord[run] != i+48) run++;
			if (word[i] = word[j] && run == stringLength(checkWord) && i!=j )
			{
				checkWord[2*i] = i+48;
				checkWord[2*i + 1] = j+48;
				checkWord[2 * i + 2] = '\0';
				count++; 
				break;
			}
		}
	}
	if (count == lengthWord / 2) return count;
	else return -1;
}

int main()
{
	string ten = "bananaab";
	cout << isEvenWord(ten);
	return 0;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?