Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Севак
любитель покушать
682 / 633 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
#1

Перевод кода с Java - C++

07.07.2013, 22:35. Просмотров 512. Ответов 1
Метки нет (Все метки)

Здравствуйте! Есть кусок кода на java, в котором идет работа с map, пробовал переписать самостоятельно, но ничего хорошего из этого не вышло, вот что нужно перевести:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int n = Integer.parseInt(reader.readLine());
String s = reader.readLine();
 
        
        HashMap<Integer, Integer> starts = new HashMap<>();
        starts.put(0, 0);
        
        int counter = 0;
        int max = 0;
        
        for(int i=0; i<n; ++i) {
            counter = s.charAt(i) == '1' ? counter + 1 : counter - 1;
            
            if(!starts.containsKey(counter)) {
                starts.put(counter, i);
            } else {
                int pos = starts.get(counter);
                if(i - pos + 1 > max) {
                    max = i - pos + 1;
                }
            }
        }
вот моя попытка:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <map>
 
using namespace std;
 
int main()
{
    int n;
    string s;
 
    //ifstream in("input.txt");
    //in >> n >> s;
    //in.close();
 
    cin >> n >> s;
 
    int counter = 0;
    int maxCount = 0;
 
    map<int, int> starts;
    starts[0] = 0;
 
 
 
    for(int i=0; i<n; ++i) {
        counter = (s[i] == '1') ? counter + 1 : counter - 1;
 
        if(starts[counter] == NULL) {
            starts[counter] = i;
        } else {
            int pos = starts[counter];
            if(i - pos + 1 > maxCount)
            {
                maxCount = i - pos + 1;
            }
        }
    }
 
 
 
    //ofstream out ("output.txt");
    //out << max;
    //out.close();
 
    cout << maxCount/2;
 
    return 0;
}
Добавлено через 32 минуты
Надобность в переписывании пропала, всем спасибо за внимание!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2013, 22:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Перевод кода с Java (C++):

Перевод кода с Java
Здравствуйте! Есть код на java, который работает недостаточно быстро, для его...

Перевод кода из java в С++
Делаю попытку создать хоть какую то стратегию ...

Перевод кода с Java на С++
Помогите перевести следующий код с Java на C++: * Вызывающий класс*/ ...

Перевод кода с Java на С++
Такой вот код нужно перевести. import java.io.*; import java.math.BigInteger;...

Перевод кода с Java на С++
Помогите перевести следующий код с Java на C++: import java.io.File; import...

Перевод кода
Помогите пожалуйста перевести код с паскаля на С++. var a,b:array of real; ...

1
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
08.07.2013, 15:34 #2
Севак, как по мне, так нужно начать отталкиваться от того, что hashmap в с++ называется unordered_map
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2013, 15:34
Привет! Вот еще темы с решениями:

Перевод кода из c в c++
Помогите перевести код из c в c++ строки 86,239,403 выдают одну и туже...

перевод кода с C# на C++
помогите перевести код с си-шаспа на си++ using System; public class Test...

Перевод кода С# на С++
Данный код написан на языке С#. Необходимо перевести на язык С++. namespase...

Перевод кода из C# в C++
Имеется исходный код на C#: using System; using System.Collections.Generic;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru