Как проверить, является ли символ Java обозначением денежной единицы

Не уверен, что вы можете уменьшить сложность, но вы можете сократить время внутренних циклов.

  • во-первых, сравните u != v на внешнем уровне, не выполняйте внутренние циклы, просто чтобы убедиться, что ничего не поделаешь
  • , во-вторых, сортируйте свой список экспертов и не обрабатывайте 2 «половины», просто чтобы отбросить половину итераций при сравнении.
  • затем кэшируйте ваши переменные условия, чтобы избежать их многократного вычисления

, как это (для последнего условия)

sorted_experts = sorted(Experts)
for p1 in projects:
    for u1 in Skills:
        for v1 in Skills:
            if u1!=v1:  # do this check here
                for ei,i1 in enumerate(sorted_experts):
                   for ej in range(ei+1,len(sorted_experts)):
                        j1 = sorted_experts[ej]  # no need to test for indices
                        ycond = y[i1,u1,j1,v1,p1] # cache your condition variables
                        zcond = z[i1,u1,j1,v1,p1]
                        w = Wp[p1]
                        m.addConstr( ycond <= zcond )
                        m.addConstr( ycond <= w )
                        m.addConstr( ycond >= zcond + w - 1 ) 
5
задан Yuval Adam 6 April 2009 в 14:18
поделиться

1 ответ

Да, согласно Java API - это - константа, которую Вы ищете.

Для получения символьного типа используйте Character.getType(c) статический метод, как так:

char c = '$';
System.out.println(Character.getType(c) == Character.CURRENCY_SYMBOL);
// prints true
15
ответ дан 18 December 2019 в 12:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: